axis는 N차원 배열을 정의할때 사용되기도 하며 여러 연산 과정에서의 기준으로도 쓰입니다. 즉, 파이썬 라이브러리 Numpy, Pandas에서 매개변수로 자주 사용되는 axis의 의미에 대해 알아봅시다.
axis
axis=1
axis=0
축
행
열
축(axis)는 n차원 배열을 구성하는 요소입니다.
즉, n차원 배열은 몇개의 축을 중심으로 하여 만들어집니다.
사실 axis = n으로 불리는 축은 그냥 바깥 리스트에서 안쪽 리스트 순으로 0부터 이름 붙인것에 불과합니다. 2차원 배열에서 axis 0은 행을 의미하지만, 3차원 배열에서 axis 0은 높이를 의미하는 것도 그런 이유입니다.
1차원 배열은 axis 0이라는 축으로 구성됩니다.
이 축은 단지 1차원 배열을 지탱하고 있으며, 1차원 배열에는 행과 열이라는 개념이 존재하지 않습니다. 그래서 array.shape을 조사해보면 (n, )이라는 값이 나옵니다. 이는 축이 하나만 존재하다는 뜻이기도 합니다.
2차원 배열은 행렬 개념에 대입하여 이해할 수 있습니다.
두개의 축이 존재하며 axis 0은 행 방향으로 동작하고, axis 1은 열 방향으로 동작합니다. 조금 더 자세히 말해보면 axis=0은 각 열의 모든 행에서 동작하고, axis=1은 각 행의 모든 열에서 동작합니다. 그래서 axis 0이 두칸이므로 2행 axis 1이 세칸이므로 3열이라고 할 수 있습니다.
추가로 axis 0은 행 방향(가로 방향)으로 동작하지만 이러한 가로 방향인 행들이 모이면 세로로 쌓일 수밖에 없습니다. 즉, 책을 위로 쌓아 정리하는 것과 같습니다.
axis 1도 열 방향(세로 방향)으로 동작하지만 이러한 세로 방향인 열들이 모이면 가로로 쌓일 수밖에 없습니다. 이 경우는 책을 옆으로 정리하는 것과 같습니다.
3차원 배열에서의 세 축은 각각이 층, 행, 열의 개념과 대응됩니다. 3차원 배열에서의 shape을 구하면 얻어지는 세 값들이 각각 층과 행, 그리고 열이 됩니다.
axis 0, axis 1 축은 '2차원 배열에서 행과 열'과는 무관합니다. axis 0, 1, 2... 축은 단순히 n차원 배열에서 각각 순서대로 정의한 것에 불과하기 때문입니다.