AI/Numpy

[Numpy] numpy 배열 생성하기

sangwonYoon 2023. 3. 8. 01:20

numpy의 배열을 생성하는 다양한 방법들을 알아보자.


arange 함수

  • 범위를 지정해서 범위 내의 값을 가진 array를 생성한다.
  • 파이썬의 range와 유사한 역할을 한다.
  • step의 크기를 float로 줄 수 있다.
test_array = np.arange(0, 5, 0.5) # step의 크기가 0.5

print(test_array)
# 출력: [0.  0.5 1.  1.5 2.  2.5 3.  3.5 4.  4.5]

 

zeros, ones 함수

값을 0(또는 1)으로 채운 array를 생성한다.

 

np.zeros(shape, dtype, order)
np.ones(shape, dtype, order)

파라미터 중 order은 메모리에서 row-major로 저장될 것인지, column-major로 저장될 것인지를 지정한다.

z = np.zeros((2, 5), np.int8)

print(z)
# 출력:
# [[0 0 0 0 0]
#  [0 0 0 0 0]]

 

empty 함수

  • shape만 주어지고 비어있는 array를 생성한다.
  • 값을 따로 초기화해주지 않으면, 이전에 메모리에 올라가 있던 값이 출력될 수 있으므로 주의해야 한다.
e = np.empty((3, 5))

print(e)
# 출력:
# [[0.         0.         0.4472136  0.0531494  0.18257419]
#  [0.4472136  0.2125976  0.36514837 0.4472136  0.4783446 ]
#  [0.54772256 0.4472136  0.85039041 0.73029674 0.4472136 ]]

# 위 출력값들은 모두 쓰레기값이다.

 

something_like 함수

인자로 주어진 array의 shape과 같은 모양의 1, 0 또는 empty array를 반환한다.

test_matrix = np.arange(12).reshape(3,4)

print(np.ones_like(test_matrix))
# 출력:
# [[1 1 1 1]
#  [1 1 1 1]
#  [1 1 1 1]]

 

identity 함수

단위 행렬을 생성한다.

i = np.identity(3, np.int8)

print(i)
# 출력:
# [[1 0 0]
#  [0 1 0]
#  [0 0 1]]

 

eye 함수

  • 대각선이 1인 행렬을 생성한다.
  • k값을 지정하여 대각선이 시작할 열의 위치를 조정할 수 있다.
  • k의 기본값은 0
m = np.eye(3, 5, k=2, dtype = np.float32)

print(m)
# 출력:
# [[0. 0. 1. 0. 0.]    세번째 열부터 대각선이 시작한다.
#  [0. 0. 0. 1. 0.]
#  [0. 0. 0. 0. 1.]]

 

random sampling

np.random.uniform(시작값, 끝값, 추출 개수)
np.random.normal(평균, 표준 편차, 추출 개수)
np.random.uniform(0, 1, 10).reshape(2, 5) # 균등분포
np.random.normal(0, 1, 10). reshape(2, 5) # 정규분포

 

'AI > Numpy' 카테고리의 다른 글

[Numpy] where 함수 사용법  (0) 2023.03.08
[Numpy] numpy 배열 간 연산  (0) 2023.03.08
[Numpy] numpy 배열 합치기  (0) 2023.03.08
[Numpy] axis란 무엇일까?  (0) 2023.03.08
[Numpy] numpy 배열 다루기  (0) 2023.03.08