기록하는 습관

[Numpy] 003. 배열 형태 변경하기 (Reshape) 본문

Python/Numpy

[Numpy] 003. 배열 형태 변경하기 (Reshape)

Avalla 2023. 8. 5. 18:29

배열 형태 변경하기 (Reshape)

import numpy as np

배열.reshape(tup)

사이즈가 동일한 형태로 reshape 해야한다.

array = np.array(4)
print( array )
print( array.size )
print( array.reshape(2,2) )
4
1



---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-3-938f14dc513a> in <module>
      2 print( array )
      3 print( array.size )
----> 4 print( array.reshape(2,2) )


ValueError: cannot reshape array of size 1 into shape (2,2)
array = np.array(range(4))
print( array )
print( array.size )
print( array.reshape(2,2) )
[0 1 2 3]
4
[[0 1]
 [2 3]]

배열.ravel() & 배열.flatten()

Docstring:
a.flatten(order='C')
Return a copy of the array collapsed into one dimension.
ravel() 함수와 flatten() 함수는 동일한 결과를 반환하지만, ravel() 함수는 원본 배열의 뷰(view)를 반환하며, flatten() 함수는 새로운 복사본을 반환한다.
따라서 메모리 사용 측면에서 약간의 차이가 있을 수 있다.

array = np.array(range(24)).reshape(3,2,4)
print( "array :\n", array )
print( "array.shape :", array.shape )
print( "array.flatten() :", array.flatten() )
print( "array.ravel() :", array.ravel() )
print( "array.flatten().shape :", array.flatten().shape )
print( "array.ravel().shape :", array.ravel().shape )
array :
 [[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]

 [[16 17 18 19]
  [20 21 22 23]]]
array.shape : (3, 2, 4)
array.flatten() : [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
array.ravel() : [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
array.flatten().shape : (24,)
array.ravel().shape : (24,)

배열.transpose() 또는 배열.T

array = np.arange(6).reshape(2,3)
print( "array :\n", array )
print( "array.shape :", array.shape )
print( "array.T :\n", array.T )
print( "array.T.shape :", array.T.shape )
array :
 [[0 1 2]
 [3 4 5]]
array.shape : (2, 3)
array.T :
 [[0 3]
 [1 4]
 [2 5]]
array.T.shape : (3, 2)

1 차원 헷갈리지 않기

array = np.arange(6)
print( "array :\n", array )
print( "array.shape :", array.shape )
print( "array.T :\n", array.T )
print( "array.T.shape :", array.T.shape )
array :
 [0 1 2 3 4 5]
array.shape : (6,)
array.T :
 [0 1 2 3 4 5]
array.T.shape : (6,)
array = np.arange(6)[np.newaxis,:]
print( "array :\n", array )
print( "array.shape :", array.shape )
print( "array.T :\n", array.T )
print( "array.T.shape :", array.T.shape )
array :
 [[0 1 2 3 4 5]]
array.shape : (1, 6)
array.T :
 [[0]
 [1]
 [2]
 [3]
 [4]
 [5]]
array.T.shape : (6, 1)