상위 목록: 하위 목록: 작성 날짜: 읽는 데 2 분 소요

모든 값이 1인 배열

import numpy as np

a = np.ones((2,2), dtype=int)
b = [1, 2, 3, 4, 5]
c = np.ones_like(b, dtype=int)

print(a)
print(b)
print(c)
결과
[[1 1]
[1 1]]
[1, 2, 3, 4, 5]
[1 1 1 1 1]

numpy.ones(형태, dtype=자료형)을 사용하여 모든 원소의 값이 1인 배열을 생성할 수 있습니다.

형태는 (2, 2)처럼 각 차원의 크기를 담은 tuple로 지정하며, 1차원 배열이라면 numpy.ones(5)처럼 정수 하나로 지정할 수도 있습니다.

numpy.ones_like(배열, dtype=자료형)을 사용하여 배열의 크기와 동일하며 모든 원소의 값이 1인 배열을 생성할 수 있습니다.

  • Tip : dtype을 생략할 경우, 기본 자료형은 정수가 아닌 float64입니다. numpy.ones(3)은 [1. 1. 1.]을 반환합니다. 반면 ones_like는 dtype을 생략하면 입력 배열의 자료형을 따릅니다.



모든 값이 0인 배열

import numpy as np

a = np.zeros((2,2), dtype=int)
b = [1, 2, 3, 4, 5]
c = np.zeros_like(b, dtype=int)

print(a)
print(b)
print(c)
결과
[[0 0]
[0 0]]
[1, 2, 3, 4, 5]
[0 0 0 0 0]

numpy.zeros(형태, dtype=자료형)을 사용하여 모든 원소의 값이 0인 배열을 생성할 수 있습니다.

numpy.zeros_like(배열, dtype=자료형)을 사용하여 배열의 크기와 동일하며 모든 원소의 값이 0인 배열을 생성할 수 있습니다.



모든 값이 비어있는 배열

import numpy as np

a = np.empty((2,2), dtype=int)
b = [1, 2, 3, 4, 5]
c = np.empty_like(b, dtype=int)

print(a)
print(b)
print(c)
결과
[[ 257 83886080]
[ 18 0]]
[1, 2, 3, 4, 5]
[0 0 0 0 0]

numpy.empty(형태, dtype=자료형)을 사용하여 특정한 값으로 초기화하지 않는 배열을 생성할 수 있습니다.

numpy.empty_like(배열, dtype=자료형)을 사용하여 배열의 크기와 동일하며 특정한 값으로 초기화하지 않는 배열을 생성할 수 있습니다.

난수와 다른 임의의 값이 들어가며 값은 메모리에 저장된 내용에 따라 달라집니다. 위의 결과는 하나의 예시이며, 실행할 때마다 다른 값이 출력될 수 있습니다. empty_like의 결과가 0으로 출력되었더라도, 0으로 초기화된다는 보장은 없습니다.

  • Tip : empty를 이용하여 배열을 생성할 경우, 값을 채우는 과정을 생략하므로 조금 더 빠른 속도로 생성이 가능합니다. 단, 생성 직후 모든 원소에 값을 직접 채울 때만 사용해야 합니다.



대각의 값이 1인 배열(단위 행렬)

import numpy as np

a = np.identity(4, dtype=int)
b = np.eye(4, 4, k=1, dtype=int)

print(a)
print(b)
결과
[[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]]
[[0 1 0 0]
[0 0 1 0]
[0 0 0 1]
[0 0 0 0]]

numpy.identity(N, dtype=자료형)을 사용하여 NxN 크기의 단위 행렬을 반환합니다.

numpy.eye(N, M, k=K, dtype=자료형)을 사용하여 NxM 크기이며, 주대각선에서 K만큼 떨어진 대각선의 값이 1인 행렬을 반환합니다.

M을 생략하면 N과 같은 값이 되며, K를 생략하면 0이 되어 numpy.identity(N)과 같은 단위 행렬이 됩니다.

K의 값이 양수일 경우, 우상 방향으로 이동하며, K의 값이 음수일 경우, 좌하 방향으로 이동합니다.

  • Tip : numpy.identity()와 numpy.eye() 모두 dtype을 생략할 경우 float64 자료형의 행렬을 반환합니다.



특정한 값으로 채워진 배열

import numpy as np

a = np.full((2, 3), 7)
b = [1, 2, 3]
c = np.full_like(b, 0.5)
d = np.full_like(b, 0.5, dtype=float)

print(a)
print(c)
print(d)
결과
[[7 7 7]
[7 7 7]]
[0 0 0]
[0.5 0.5 0.5]

numpy.full(형태, 값, dtype=자료형)을 사용하여 모든 원소가 지정한 값으로 채워진 배열을 생성할 수 있습니다.

numpy.full_like(배열, 값, dtype=자료형)을 사용하여 배열의 크기와 동일하며 모든 원소가 지정한 값으로 채워진 배열을 생성할 수 있습니다.

full_like는 dtype을 생략하면 입력 배열의 자료형을 따릅니다. b는 정수 배열이므로 0.5가 정수로 변환되어 0으로 채워집니다. 실수 값을 채우려면 dtype=float을 명시해야 합니다.

  • Tip : ones, zeros, empty는 dtype을 생략하면 float64가 되지만, full은 채우는 값의 자료형을 따릅니다. numpy.full((2, 3), 7)은 정수 배열을, numpy.full((2, 3), 7.0)은 실수 배열을 반환합니다.

댓글 남기기