본문 바로가기
Python/numpy

(numpy) 특정 값으로 배열 생성 (np.zeros, np.ones, np.empty, np.full)

by re-hwi 2022. 10. 20.

배열을 생성 할 때 배열 전체에 특정 값을 주어야 한다거나 True와 False 등 추가적인 조건이 붙을 수 있다. 이럴 때를 대비하여 배열을 생성할 때 미리 값을 지정해 주는 함수가 있다. 

 

먼저 0과 1로 이루어진 배열을 생성하는 함수에 대해 써 보려한다.

 

np.zeros (x,y,z)

0으로 이루어진 y행 z열을 가진 array를 생성한다. 0은 False를 뜻하기 때문에 bool 형식에서도 자주 쓰인다. 이 때 x는 z축으로 나열되어 있는 배열을 뜻하며 그림은 다음과 같다. 

 

3차원 배열

위 그림은 3행 3열짜리 배열이 2개 있으므로 np.zeros(2,3,3)으로 나타낼 수 있다. 매개변수가 1개이기 때문에 괄호로 묶어줘야함

예시)

import numpy as np

a = np.zeros ((2, 3, 3))
print(a)

>>> [[[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]]

 [[0. 0. 0.]
  [0. 0. 0.]
  [0. 0. 0.]]]

np.ones ((x,y,z))

사용 방법은 np.zeros와 같다. 둘의 차이점은 0과 1의 차이인데 이것으로 True와 Flase를 구분할 수 있다. 

예시)

import numpy as np

a = np.ones ((2, 3, 3))
print(a)

>>> [[[1. 1. 1.]
  [1. 1. 1.]
  [1. 1. 1.]]

 [[1. 1. 1.]
  [1. 1. 1.]
  [1. 1. 1.]]]

 

np.empty ((x,y,z))

초기화 되지 않은 값으로 array를 생성한다. 초기화 되지 않은 값이기 때문에 쓰레기 값이 들어있으며, 사용법은 앞서 말한 두 함수와 같다. 

예시)

import numpy as np

a = np.empty((2, 3, 3))
print(a)

>>> [[[4.67296746e-307 1.69121096e-306 8.90108992e-307]
  [1.89146896e-307 7.56571288e-307 3.11525958e-307]
  [1.24610723e-306 1.37962320e-306 1.29060871e-306]]

 [[2.22518251e-306 1.33511969e-306 1.78022342e-306]
  [1.05700345e-307 2.22523004e-307 6.23059725e-307]
  [8.45596650e-307 1.24610723e-306 8.90111708e-307]]]

 

np.full((x,y,z),data)

data로 이루어진 y행z열의 크기인 배열을 생성 xyz가 의미하는 것은 앞서 나온 함수와 같고, data는 배열 안에 들어갈 요소를 뜻한다.

예시)

import numpy as np

a = np.full((2, 3, 3),7)
print(a)

>>> [[[7 7 7]
  [7 7 7]
  [7 7 7]]

 [[7 7 7]
  [7 7 7]
  [7 7 7]]]

반응형

댓글