파이썬에서 numpy와 pandas를 공부하다 보면 다차원의 배열을 접하게 되고, 이 과정에서 다양한 함수를 사용하게 되는데요. 이때 axis(축)에 대해서 접하게 됩니다. 다른 분들의 글을 읽어보아도 대다수의 분들이 입문~초보자의 수준에서 공부하게 될 때는, 3차원까지만 알아도 수월하게 공부할 수는 있다고 합니다. 그렇지만, 그래도 공부할 거 이왕이면 중급자는 목표로 해야죠. (혼자 공부하는 데 고수까지는 바라지도 않습니다?)
네, 일단 4차원은 어떻게 그리는지 모르겠어서 3차원 까지만 그렸습니다.
파이썬의 배열은 리스트가 겹겹이 쌓여 중첩된 것입니다.
1차원 배열은 축이 1개, 2차원 배열은 축이 2개, 3차원 배열은 축이 3개입니다.
축은 인덱스와 마찬가지로 1부터 시작하는 게 아니라, 0부터 시작합니다. (여기서 우리는 1차원 배열은 axis0, 2차원 배열은 axis 0, axis1, 3차원 배열은 axis 0, axis1, axis 2로 구성되어 있다는 것을 유추할 수 있습니다.)
기본 단위가 되는 1차원 배열이 가장 안쪽 리스트입니다. (1차원부터 중첩되어 2차원이되고, 3차원이 되고... n차원이 되는 것입니다.)
여기서 바깥쪽 리스트가 axis 0이 되고, 안쪽으로 들어올수록 axis 수가 1씩 증가합니다.
import numpy as np
array_3d = np.arange(1, 33).reshape(4,2,4)
print(array_3d)
[출력]
[[[ 1 2 3 4]
[ 5 6 7 8]]
[[ 9 10 11 12]
[13 14 15 16]]
[[17 18 19 20]
[21 22 23 24]]
[[25 26 27 28]
[29 30 31 32]]]
제가 생성한 3차원 배열은 [출력]과 같습니다. 3차원 배열을 예시로 들고 아래에도 그림으로도 그려보았습니다.
[ [ [ 1 2 3 4 ]
[ 5 6 7 8 ] ]
[ [ 9 10 11 12 ]
[13 14 15 16 ] ]
[ [17 18 19 20 ]
[21 22 23 24 ] ]
[ [25 26 27 28 ]
[29 30 31 32 ] ] ]
axis0 (가장 바깥쪽 리스트)
[[1 2 3 4] [5 6 7 8 ]] → [[9 10 11 12] [13 14 15 16 ]] → [[17 18 19 20] [21 22 23 24 ]] → [[25 26 27 28] [29 30 31 32 ]]
방향으로 진행합니다.
axis 1
[1 2 3 4] → [5 6 7 8] ...
방향으로 진행합니다.
axis 2 (가장 안쪽 리스트, 기본 단위)
1 → 2 → 3 → 4 ...
방향으로 진행합니다.
3차원 배열
3차원 배열까지는 행, 열, 높이(깊이)의 개념으로 이해할 수 있다고 해도 4차원부터는 이 개념으로는 설명할 수 없는 영역에 도달하게 됩니다. 이 때문에 지금부터 axis(축)의 개념으로 이해하는 게 좋을 것 같습니다.
* 물론, 저도 1~3차원에 해당하는 배열이 있을 때는 행,열,높이(깊이)로 이해하며 적용할 것입니다. 다만 4차원 이상부터는 이 개념을 이용하는 게 더 어려울 것 같으니 이런 개념도 알아두셔야 할 것 같습니다!
'공부 > 파이썬(데이터)' 카테고리의 다른 글
[파이썬 Numpy] ndarray 생성하기 (1) | 2023.10.19 |
---|---|
[파이썬 sklearn] 빅데이터분석기사 1유형 예시 코드 - minmax 스케일링 (0) | 2023.10.14 |
[파이썬 sklearn] train_test_split 학습, 테스트 데이터 나누기 (빅데이터분석기사) (0) | 2023.10.13 |
[파이썬 sklearn] 오차행렬(혼동행렬, confusion matrix) 공부하기 - 평가 지표 이해(1) (1) | 2023.10.11 |