Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 행렬 조작 완벽 가이드: NumPy 핵심 함수 정리

파이썬에서는 다양한 행렬 조작과 연산을 손쉽게 처리할 수 있습니다. 특히 NumPy 모듈은 행렬 연산을 위한 강력하고 다양한 메서드를 제공하여 데이터 분석, 머신러닝 등 수치 계산이 필요한 거의 모든 분야에서 필수적인 도구로 자리 잡고 있습니다.

NumPy의 주요 행렬 연산 함수

add() — 두 행렬의 같은 위치에 있는 원소들을 서로 더합니다.

subtract() — 두 행렬의 원소들을 서로 뺍니다.

divide() — 두 행렬의 원소들을 나눕니다.

multiply() — 두 행렬의 원소들을 곱합니다(요소별 곱셈).

dot() — 진정한 의미의 행렬 곱셈을 수행합니다. multiply()와 달리 요소별 곱셈이 아니라 선형대수에서 말하는 행렬 곱을 계산한다는 점에 유의해야 합니다.

sqrt() — 행렬의 각 원소에 대한 제곱근을 계산합니다.

sum(x, axis) — 행렬의 모든 원소를 더합니다. 두 번째 인자인 axis는 선택 사항으로, axis=0이면 열(column) 단위 합계를, axis=1이면 행(row) 단위 합계를 구할 때 사용됩니다.

"T" — 지정된 행렬의 전치(transpose)를 수행합니다. 즉, 행과 열을 서로 바꿔줍니다.

예제 코드

import numpy
# 두 개의 행렬을 값으로 초기화
x = numpy.array([[1, 2], [4, 5]])
y = numpy.array([[7, 8], [9, 10]])
# add()를 사용하여 행렬 덧셈
print ("두 행렬의 덧셈: ")
print (numpy.add(x,y))
# subtract()를 사용하여 행렬 뺄셈
print ("두 행렬의 뺄셈 : ")
print (numpy.subtract(x,y))
# divide()를 사용하여 행렬 나눗셈
print ("행렬 나눗셈 : ")
print (numpy.divide(x,y))
print ("두 행렬의 곱셈(요소별): ")
print (numpy.multiply(x,y))
print ("두 행렬의 행렬 곱(dot product) : ")
print (numpy.dot(x,y))
print ("각 원소의 제곱근 : ")
print (numpy.sqrt(x))
print ("전체 원소의 합 : ")
print (numpy.sum(y))
print ("열 방향 합계(axis=0) : ")
print (numpy.sum(y,axis=0))
print ("행 방향 합계(axis=1) : ")
print (numpy.sum(y,axis=1))
# "T"를 사용하여 행렬 전치
print ("행렬 전치 : ")
print (x.T)

실행 결과

두 행렬의 덧셈: 
[[ 8 10]
 [13 15]]
두 행렬의 뺄셈 :
[[-6 -6]
 [-5 -5]]
행렬 나눗셈 :
[[0.14285714 0.25      ]
 [0.44444444 0.5       ]]
두 행렬의 곱셈(요소별): 
[[ 7 16]
 [36 50]]
두 행렬의 행렬 곱(dot product) : 
[[25 28]
 [73 82]]
각 원소의 제곱근 : 
[[1.         1.41421356]
 [2.         2.23606798]]
전체 원소의 합 : 
34
열 방향 합계(axis=0) : 
[16 18]
행 방향 합계(axis=1) : 
[15 19]
행렬 전치 : 
[[1 4]
[2 5]]

마무리

위 예제에서 볼 수 있듯이 NumPy를 활용하면 행렬의 사칙연산부터 제곱근 계산, 합계 산출, 전치까지 복잡한 수학적 작업을 몇 줄의 코드로 간단하게 처리할 수 있습니다. 특히 multiply()dot()의 차이를 정확히 이해하는 것이 중요합니다. 전자는 같은 위치의 원소끼리 곱하는 요소별 곱셈이고, 후자는 선형대수의 규칙에 따라 행과 열을 곱하는 행렬 곱셈입니다. 이러한 기본기를 잘 익혀두면 이후 벡터화 연산이나 딥러닝 프로그래밍을 배울 때 큰 도움이 됩니다.