행렬 덧셈은 두 행렬에서 같은 위치에 있는 요소끼리 서로 더하는 연산입니다. 파이썬에서 두 행렬을 더하는 가장 간단한 방법은 반복문을 사용해 각 요소를 하나씩 순회하면서 더하는 것입니다.
반복문으로 행렬 더하기
중첩된 for 반복문을 활용하면 리스트 형태의 행렬도 손쉽게 더할 수 있습니다. 아래 예제를 살펴보세요.
X = [[1,2,3], [4,5,6], [7,8,9]]
Y = [[9,8,7], [6,5,4], [3,2,1]]
result = [[0,0,0], [0,0,0], [0,0,0]]
for i in range(len(X)):
for j in range(len(X[0])):
result[i][j] = X[i][j] + Y[i][j]
for r in result:
print(r)이 코드를 실행하면 다음과 같은 결과가 출력됩니다.
[10, 10, 10] [10, 10, 10] [10, 10, 10]
행렬 X와 Y의 대응되는 요소들이 각각 더해져 3×3 크기의 새로운 행렬 result에 저장됩니다. 바깥쪽 반복문은 행(row)을, 안쪽 반복문은 열(column)을 순회하며 모든 요소를 처리합니다.
NumPy를 활용한 행렬 덧셈
더 큰 규모의 데이터나 복잡한 수치 연산을 다룰 때는 NumPy 모듈을 사용하는 것이 좋습니다. NumPy는 행렬 연산을 위한 다양한 기능을 기본적으로 지원하기 때문에 코드가 훨씬 간결해집니다.
import numpy as np X = np.matrix([[1, 2], [3, 4]]) Y = np.matrix([[2, 2], [2, 2]]) result = X + Y print(result)
실행 결과는 다음과 같습니다.
matrix([[3, 4], [5, 6]])
NumPy에서는 단순히 + 연산자만으로 행렬 전체의 요소별 덧셈이 한 번에 이루어지므로, 반복문을 직접 작성할 필요가 없습니다. 또한 NumPy는 C 언어 기반으로 구현되어 있어 일반 파이썬 반복문보다 연산 속도가 훨씬 빠르기 때문에, 실무에서는 대부분 NumPy를 활용한 방법을 권장합니다.