이 글에서는 주어진 행렬에서 각 행의 합과 각 열의 합을 따로 구하는 방법을 알아봅니다. 합계를 계산할 때는 NumPy의 sum() 함수를 사용하며, axis 옵션만 바꿔주면 행 기준 또는 열 기준 계산을 손쉽게 전환할 수 있습니다.
알고리즘
1단계: numpy 모듈을 임포트한다.
2단계: m×n 크기의 넘파이 행렬을 생성한다.
3단계: 행 방향의 합계를 구한다.
4단계: 열 방향의 합계를 구한다.
예제 코드
import numpy as np
a = np.matrix('10 20; 30 40')
print("Our matrix: \n", a)
sum_axis0 = np.sum(a, axis=0)
print("\naxis=0 결과: ", sum_axis0)
sum_axis1 = np.sum(a, axis=1)
print("\naxis=1 결과: \n", sum_axis1)
실행 결과
Our matrix: [[10 20] [30 40]] axis=0 결과: [[40 60]] axis=1 결과: [[30] [70]]
코드 설명
np.sum() 함수는 어느 방향으로 요소를 더할지 결정하는 axis(축) 인자를 추가로 받습니다. axis 값은 0 또는 1 중 하나입니다.
- axis=0: 행 방향(세로)으로 요소를 더하므로 각 열의 합이 계산됩니다. 위 예제에서는 10+30=40, 20+40=60이 되어 [[40 60]]이 출력됩니다.
- axis=1: 열 방향(가로)으로 요소를 더하므로 각 행의 합이 계산됩니다. 위 예제에서는 10+20=30, 30+40=70이 되어 [[30], [70]]이 출력됩니다.
즉, axis는 "합산을 진행할 축"을 의미하며, 해당 축을 따라 요소들이 하나로 묶입니다. 이 원리만 이해하면 2차원 행렬은 물론 그 이상의 다차원 배열에서도 원하는 방향의 합계를 자유롭게 구할 수 있습니다.