[Python Numpy] 배열에 차원 추가하기 (Adding Dimensions to a Numpy Array)
Python 분석과 프로그래밍/Python 데이터 전처리 2019. 2. 24. 00:27이번 포스팅에서는 Python Numpy 배열 (array)에 차원을 추가하는 3가지 방법을 소개하겠습니다. 딥러닝 공부하다 보면 computer vision의 CNN에서 이미지 파일을 불러와서 다차원 배열로 변환할 때 사용하곤 합니다.
1. numpy.reshape() 을 이용한 차원 추가
2. numpy.expand_dims() 을 이용한 차원 추가
3. numpy.newaxis 을 이용한 차원 추가
예제로 사용할 간단한 (4, 3, 2) 3차원의 다차원 배열을 만들어보겠습니다.
import numpy as np a = np.arange(24).reshape(4, 3, 2) a array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]]) a.shape (4, 3, 2) |
(4, 3, 2) 차원의 배열 a에 차원을 추가하여 (1, 4, 3, 2)의 4차원 배열로 만들어보겠습니다.
1. numpy.reshape() 를 이용한 차원 추가 |
np.reshape(a, (1, 4, 3, 2)) array([[[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]]]) |
np.reshape(a, ((1,) + a.shape)) array([[[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]]]) |
a.reshape((1,) + a.shape) array([[[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]]]) |
2. numpy.expand_dims() 를 이용한 차원 추가 |
np.expand_dims(a, axis=0) array([[[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15],
[16, 17]],
[[18, 19],
[20, 21],
[22, 23]]]])
|
3. numpy.newaxis 를 이용한 차원 추가 |
a[:, np.newaxis] array([[[[ 0, 1],
[ 2, 3],
[ 4, 5]]],
[[[ 6, 7],
[ 8, 9],
[10, 11]]],
[[[12, 13],
[14, 15],
[16, 17]]],
[[[18, 19],
[20, 21],
[22, 23]]]])
|
많은 도움이 되었기를 바랍니다.
이번 포스팅이 도움이 되었다면 아래의 '공감~'를 꾹 눌러주세요. :-)