개발공부

[Python] Numpy 형태를 바꿀 수 있는 reshape() 본문

Python/Numpy

[Python] Numpy 형태를 바꿀 수 있는 reshape()

mscha 2022. 4. 28. 17:45

파이썬에서 1차원 배열은 백터(Vector),

2차원 배열은 행렬(Matrix)와 같은 의미로 쓰인다.

 

 

우리는 1차원 배열을 얻은 후, 이를 가지고 여러 차원으로 만들 수 있는데 

이때 쓰이는 함수가 reshape이다.

 

reshape()

 - 넘파이 어레이를 다른 차원의 형태로 바꿀 수 있다.

 - 데이터의 총 갯수가 일치해야 한다.

>>> import numpy as np

>>> x = np.arange(20)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])
>>> x.shape
(20,)
>>> x.ndim # x의 차원 수를 알려줌
1


# 위의 x를 2차원 (4, 5)의 형태를 가진 X로 변경하라.
>>> X = x.reshape(4, 5)
>>> X
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
>>> X.ndim
2

 

 - 여러 단계를 거치지 않고, 한번에 원하는 다차원 배열로 만들 수 있다.

# 5 부터 시작해서 25개의 순차적인 정수를 만들고, 이를 5X5 행렬로 만든다.
>>> np.arange(5, 25+5).reshape((5, 5))
array([[ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24],
       [25, 26, 27, 28, 29]])