Numpy shape 변환 (reshape, flatten)

파이썬/Numpy|2019.08.07 08:00

Numpy 배열의 shape 변환 (reshape(), flatten())

arr.reshape()

reshape 할 때는 총 개수가 맞아야 한다. 

 

즉 size가 같아야 shape을 변환할 수 있음

아니면 

ValueError: cannot reshape array of size x into shape (x, x)

에러가 발생한다.

 

(2, 4) 배열 생성

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

8행으로 shape 변환


arr.reshape(8,)
array([1, 2, 3, 4, 5, 6, 7, 8])

4행 2열의 shape 변환


arr.reshape(4,2)
array([[1, 2], 
      [3, 4], 
      [5, 6], 
      [7, 8]])

size는 8이므로 (3,3)의 size가 9인 행렬로 변환 시 오류 발생


arr.reshape(3,3)
ValueError: cannot reshape array of size 8 into shape (3,3)

size만 동일하다면 차원에 관계없이 변환됨


arr.reshape(2,2,2)
array([[[1, 2], 
        [3, 4]], 
       [[5, 6], 
        [7, 8]]])

arr.flatten() - 다차원 array를 1차원 array로 변환


arr.flatten()
array([1, 2, 3, 4, 5, 6, 7, 8])

 

댓글()