- order array를 다음과 같이 reshape 할 수 있다.
a=np.arrange(6).reshape((3,2))
>>>a
array([[0,1],[2,3],[4,5]])
- 다음과 같은 방법으로도 가능하다
a=np.array([[1,2,3],[4,5,6]])
np.reshape(a,6)
#-->array([1,2,3,4,5,6])
- -1의 의미
reshape()의 '-1' 이 의미하는 바는, 변경된 배열의 '-1' 위치의 차원은 "원래 길이와 남은 차원으로 부터 추정"이 된다는 뜻이다.
import numpy as np
x=np.arrange(12).reshape(3,4)
x=array([[0,1,2,3],[4,5,6,7],[8,9,10,11]])
(1) reshape(-1,정수)의 행(row) 위치에 '-1'이 들어있는 경우
총 12개의 원소가 들어있는 배열 x에 대해서 x.reshape(-1, 정수) 를 해주면 '열(column)' 차원의 '정수'에 따라서 12개의 원소가 빠짐없이 배치될 수 있도록 '-1'이 들어가 있는 '행(row)' 의 개수가 가변적으로 정해짐을 알 수 있다.
(2) reshape(정수,-1)의 열(column) 위치에 '-1'이 들어있을 경우
(3) reshape(-1) 인 경우
x.reshape(-1)은 x.reshape(-1,1)과 같이 1차원 배열을 반환한다
- reshape(-1, 정수) 또는 reshape(정수, -1) 메소드가 제대로 작동하기 위해서는 한가지 조건이 있는데, 원래의 배열에 있는 원소가 재구조화 혹은 재배열 되려는 배열의 차원에 빠짐없이 분배가 될 수 있어야 한다는 점이다.
- reshape(-1, -1)은 행, 열 어느 차원도 정해주지 않았으므로 ValueError 가 발생합니다.
'python > numpy' 카테고리의 다른 글
ndarray shape 변경하기 (0) | 2021.03.28 |
---|---|
인덱싱과 슬라이싱 활용하기 (0) | 2021.03.28 |
random 서브모듈 함수를 통해 ndarray 생성하기 (0) | 2021.03.28 |
다양한 방법으로 ndarray 생성하기 (0) | 2021.03.28 |
numpy 모듈과 ndarray 이해하기 (0) | 2021.03.28 |