본문 바로가기

Python/Numpy

넘파이 1

728x90
반응형

Numpy의 shape, reshape에 대해 알아보자

np.shape

행렬의 차원을 확인할 수 있는 메소드이며, np.shape(행렬) 뿐만 아니라 행렬.shape 방식으로도 사용 가능합니다.

 

 



np.reshape

행렬의 차원을 변경하는 메소드로 변경 이전의 차원의 곱과 변경 이후 차원의 곱이 같다면, 변환이 가능합니다.

예를 들어 (2, 8)차원을 가진 행렬 A는 (4, 4) 차원을 가진 행렬로 변환이 가능합니다.
2x8 = 16, 4x4 = 16이기 때문입니다.
하지만 (3, 5)차원을 가진 행렬로는 변환이 불가능합니다. 3x5 = 15이기 때문에 차원이 일치하지 않습니다.

np.reshape(행렬, 변환할 차원)으로 차원을 변경할 수도 있고, 행렬.reshape(변환할 차원)으로 변경할 수도 있습니다.

(2, 4) 2x4인 행렬 A를 8x1행렬로 변경

 

 


reshape를 사용해 (n,) 차원으로 구성된 벡터를 (n,1)차원으로 구성된 행렬을 변경할 수 있습니다.

A = A.reshape((8,),) print(A.shape) # (8,) # 여기에서 -1은 n개의 차원 중 n-1개는 사용자가 지정하고 나머지는 알아서 가능한 차원에 맞추라는 의미입니다. # 해당 예제의 경우 2개의 차원 중 마지막 차원에 1을 할당했으므로 -1에는 8이 들어가 (8, 1) 차원 행렬이 됩니다.

print(A.reshape(-1, 1).shape) # (8, 1)

728x90
반응형

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

Numpy _ 1  (0) 2020.09.03
numpy 모듈 & ndarray 이해하기  (0) 2020.09.02