오답노트

[Numpy] 정해진 형식의 N차원 배열 생성 본문

Python/Numpy

[Numpy] 정해진 형식의 N차원 배열 생성

권멋져 2022. 7. 7. 17:40

zeros

행렬의 원소가 모두 0 인 행렬을 만든다.

인자로는 행렬의 shape이 입력된다.

arr = np.zeros([2,2])
print(arr)

'''''

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

'''''

 

oens

행렬의 원소가 모두 1인 행렬을 만든다.

인자로는 행렬의 shape이 입력된다.

arr = np.ones([3,3])
print(arr)

'''''''''''

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

 

full

행렬의 원소가 모두 사용자가 지정한 수로 이루어진 행렬을 만든다.

인자로는 행렬의 shape과 행렬을 채울 수를 입력한다.

 

arr = np.full([2,3],5)
print(arr)

'''''''''''

[[5 5 5]
 [5 5 5]]

'''''''''''

 

eye

단위행렬을 생성한다.

인자로는 행렬의 shape을 인자로 받는다. 인자를 1개만 입력시 n*n 의 행렬을 만든다.

 

또, 단위행렬의 시작 위치를 k 옵션으로 설정할 수 있다.

k의 기본값은 0이고, 음수도 사용 가능하다.

 

arr = np.eye(3,5)
print(arr)

arr = np.eye(3,5, k=1)
print(arr)

arr = np.eye(3)
print(arr)


'''''''''''

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

'''''''''''

 

zeros_like, ones_like, full_like

zeros_like, ones_like, full_like의 기능은 위에서 설명한 zeros, ones, full과 같다.

하지만 인자로 배열을 받는 점에서 다른데, shape을 사용자가 지정할 필요 없이 인자로 입력된 배열의 크기와 같은 크기의 배열을 반환한다.

 

arr = np.array([[1,2,3],
                [4,5,6]])

arr_z = np.zeros_like(arr)
print(arr_z)

arr_o = np.ones_like(arr)
print(arr_o)

arr_f = np.full_like(arr,9)
print(arr_f)


'''''''

[[0 0 0]
 [0 0 0]]
 
[[1 1 1]
 [1 1 1]]
 
[[9 9 9]
 [9 9 9]]

'''''''