ravel
- 다차원 배열을 1차원으로 변경
- 원소의 주소를 복사하여 반환
- 따라서 변경 배열의 원소값을 바꾸면 원 배열의 값도 바뀜
- order 파라미터
- 'C' - row 우선 변경
- 'F' - column 우선변경
# 기본 변경
x = np.arange(8).reshape(2, 4)
# array([0, 1, 2, 3, 4, 5, 6, 7])
np.ravel(x)
x.ravel() # 둘 다 가능
np.ravel(x, order='F')
# array([0, 4, 1, 5, 2, 6, 3, 7])
temp = x.ravel()
temp[0] = 100
#[[100 1 2 3]
# [ 4 5 6 7]]
temp의 값을 변경하면 x의 값도 변경된다.
flatter
- ravel과 동일하나 복사본을 반환하다는 것이 다르다.
y = np.arange(8).reshape(2, 4)
t2 = y.flatten()
t2[0] = 100
# [100 1 2 3 4 5 6 7]
# [[0 1 2 3]
# [4 5 6 7]]
reshape
- array의 shape를 다른 차원으로 변경
- reshape 전 후의 원소 개수가 같아야 한다.
x = np.arange(12)
k = x.reshape(2, 3, -1)
k = [[[ 0 1]
[ 2 3]
[ 4 5]]
[[ 6 7]
[ 8 9]
[10 11]]]
-1은 앞이 정해지면 나머지가 유추가능하기 때문에 자동 계산해서 넣어라 라는 뜻이다.
'데이터 분석' 카테고리의 다른 글
Numpy Broadcasting (0) | 2020.02.29 |
---|---|
Numpy 기본 함수 (0) | 2020.02.29 |
Numpy ndarray 인덱싱, 슬라이싱 (0) | 2020.02.29 |
Numpy ndarray 생성 (0) | 2020.02.29 |
Numpy 개요 (0) | 2020.02.29 |
댓글