[파이썬] Numpy 모양 바꾸기(reshape)
- Python/Numpy
- 2020. 5. 19.
ndarray의 형태 바꾸는 방식을 설명하겠습니다.
reshape
reshape로 바꾸는 방법입니다. 원하는 모든 모양으로 바꿀 수 있습니다. 당연한 거지만 꼭 주의해야 할 것은 ndarray가 가지고 있는 숫자와 맞아야 합니다. 예를 들어, np.arange(16)로 하면 가능한 모양은 (3,5),(5,3),(15,1),(1,15) 만 가능합니다. 다른 모양을 하라고 명령하면 숫자가 맞지 않는다는 오류가 뜹니다.
import numpy as np
x = np.arange(15)
print(x)
x.reshape(3,5)
x는 15개의 원소로 이루어진 모양이(15,)인 ndarray였는데 (3,5)로 바꾼 것을 볼수 있습니다.
flatten
flatten은 모든 배열을 다 1차원 배열로 만들어줍니다. 즉, 일렬로 만듭니다. 내가 모양을 몰라도 일렬로 만들 수 있고 복사본으로 반환됩니다.
x = np.arange(15).reshape(3,5)
x.flatten()
파라미터를 보면 order = 'C' 라는 것이 붙여져 있습니다.
C 말고도 F,A,K를 쓸 수 있는데 주로 C,F만 쓰니 C,F만 설명하겠습니다.
C는 기본으로 되어있는 정렬방식인데 row를 기준으로 변경합니다.
x를 살펴보면 다음과 같은 배열로 나타나는데 order='C'를 하면 첫번째 row가 [0,1,2,3,4]를 먼저 넣고
두번째 row [5,6,7,8,9]를 넣는 방식입니다. 위에 쓴 x.flatten()이 order='C'으로 정렬한 것입니다.
F는 column을 기준으로 변경합니다. order='F'를 하면 x의 첫번째 column [0,5,10], 그 다음 [1,6,11] 으로 배열을 해줍니다.
x.flatten(order='F')
배열 확인 shape
배열 확인을 위해서는 shape으로 확인합니다.
shape은 함수가 아니므로 파라미터가 존재하지 않습니다. 따라서 shape()으로 쓰면 오류가 발생합니다.
x.arange(15)
x.shape
'Python > Numpy' 카테고리의 다른 글
[파이썬] Numpy axis(축) 이해 (2) | 2020.05.25 |
---|---|
[Numpy] 연산,통계,집계함수 (2) | 2020.05.21 |
ndarray 인덱싱,슬라이싱 (0) | 2020.05.17 |
ndarray 랜덤한값 생성 (0) | 2020.05.14 |
ndarray 생성하기 (0) | 2020.05.13 |