NumPy Axis 개념
🎯 NumPy 축(Axis) 개념 완벽 이해
axis 파라미터로 연산 방향 제어하기
💡 핵심 개념
axis는 연산을 적용할 "방향"을 지정해요. 중요한 건:
- axis=0: 행을 따라(across rows) 연산 (↓) → 행들이 합쳐져 사라지고, 열별 결과가 남음
- axis=1: 열을 따라(across columns) 연산 (→) → 열들이 합쳐져 사라지고, 행별 결과가 남음
- 해당 축이 사라진다! axis=0이면 행 차원이 사라지고, axis=1이면 열 차원이 사라져요
📊 예제: (4, 2) 배열의 평균 구하기
array_2d = np.array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
shape: (4, 2) → (행 4개, 열 2개)
axis=0 (세로 방향 ↓)
np.mean(array_2d, axis=0)
계산 과정:
• 첫 번째 열: (1 + 3 + 5 + 7) / 4 = 4.0
• 두 번째 열: (2 + 4 + 6 + 8) / 4 = 5.0
[4.0, 5.0]
"열별 평균" = 각 열의 값들을 모아서 평균
shape: (4, 2) → (2,) [행이 사라짐!]
axis=1 (가로 방향 →)
np.mean(array_2d, axis=1)
계산 과정:
• 첫 번째 행: (1 + 2) / 2 = 1.5
• 두 번째 행: (3 + 4) / 2 = 3.5
• 세 번째 행: (5 + 6) / 2 = 5.5
• 네 번째 행: (7 + 8) / 2 = 7.5
[1.5, 3.5, 5.5, 7.5]
"행별 평균" = 각 행의 값들을 모아서 평균
shape: (4, 2) → (4,) [열이 사라짐!]
🎓 헷갈리지 않는 팁!
- axis 번호 = 사라질 차원
axis=0을 지정하면 0번째 차원(행)이 사라져요
- 방향으로 생각하기
axis=0: ↓ 방향으로 훑으며 연산 (열끼리 묶임)
axis=1: → 방향으로 훑으며 연산 (행끼리 묶임)
- 결과의 shape 확인
(4, 2) 배열에서 axis=0 → (2,) [첫 번째 차원 사라짐]
(4, 2) 배열에서 axis=1 → (4,) [두 번째 차원 사라짐]
- 이번 예제처럼 직사각형 배열로 보면 더 명확!
세로로 긴 배열 (4, 2)에서 axis=0 → 결과 2개
세로로 긴 배열 (4, 2)에서 axis=1 → 결과 4개
📝 다른 함수들도 동일한 원리!
np.sum(array_2d, axis=0) # 열별 합계 → 결과: [16, 20]
np.max(array_2d, axis=1) # 행별 최댓값 → 결과: [2, 4, 6, 8]
np.std(array_2d, axis=0) # 열별 표준편차
np.argmax(array_2d, axis=1) # 행별 최댓값의 인덱스
모두 같은 axis 개념을 사용해요! 🎯