두 함수는 주로 딥러닝에서 다차원 배열을 다룰 때 사용되, 텐서의 차원을 축소하거나 확대할 때 자주 사용합니다.
np.expnad_dims
import numpy as np
np.expand_dims(data, axis)
data : 차원을 추가할 array 또는 tensor입니다.
axis : 확장할 축(차원)의 위치. 값은 정수, 리스트 또는 튜플의 형태로 입력할 수 있습니다.
예시1) axis에 정수를 넣어 2차원 배열을 3차원 배열로 확장하는 경우입니다.
>>> import numpy as np
>>> data = np.arange(12).reshape(3,4)
>>> data
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> data1 = np.expand_dims(data, axis=1)
>>> data1.shape
(3, 1, 4)
예시2) axis에 리스트를 넣어 2차원 배열을 4차원 배열로 확장하는 경우입니다.
>>> data2 = np.expand_dims(data, axis = [0,2])
>>> data2.shape
(1, 3, 1, 4)
np.squeeze
import numpy as np
np.squeeze(data, axis=None)
data : 차원을 축소할 array 또는 tensor입니다.
axis : 축소할 축(차원)의 위치. 값을 정수를 넣어서 특정 차원을 축소하거나 생략하여 차원의 크기가 1인 모든 차원이 제거됩니다.
예시1) axis에 정수를 넣은 경우
>>> data = np.arange(9).reshape(1,3,1,3)
>>> data.shape
(1, 3, 1, 3)
>>> data1 = np.squeeze(data, axis=0)
>>> data1.shape
(3, 1, 3)
예시2) axis값을 None으로 한 경우
>>> data.shape
(1, 3, 1, 3)
>>> data2 = np.squeeze(data)
>>> data2.shape
(3, 3)
'Coding > Numpy' 카테고리의 다른 글
[Numpy] 배열 이어붙이기 (concatenate, vstack, hstack, r_, c_) (1) | 2023.12.26 |
---|---|
[Numpy] 팬시 색인(fancy indexing) (1) | 2023.12.22 |
[Numpy] Numpy 메서드 ( argmin, argmax, cumsum, cumprod) (0) | 2023.12.21 |
[Numpy] Numpy란? (ndarray, ndim, shape) (0) | 2023.12.20 |