안녕하세요! 나비입니다 🦋
이번 포스팅에서는 파이썬 numpy에서 행렬과 관련된 기본적인 연산 함수를 소개해 드리려고 합니다.
선형대수학, 행렬 연산에서 매우 자주 다루는 내적(dot product), 행렬곱(matrix product), 전치행렬(transpose) 연산 메소드를 아래서 차례대로 설명하겠습니다.
np.dot : 두 array의 내적을 반환합니다.
np.matmul : 두 array의 행렬곱을 반환합니다.
np.transpose : 입력된 행렬의 전치행렬을 반환합니다.
(내적, 행렬곱, 전치행렬에 대한 수학적 설명은 생략하겠습니다.)
np.dot
import numpy as np
a = np.dot(2,3)
A = np.dot([1,2], [3,4])
B = np.dot([1,2,3], [4,5,6])
print(a)
print(A)
print(B)
6
11
32
dot 메소드는 2개의 인수를 요구합니다.
두 개의 실수를 입력한다면, 실수끼리 곱한 값을 반환합니다.
1차원 벡터를 입력한 경우, 두 벡터의 내적(dot product)를 반환합니다.
1차원 벡터의 원소 개수에는 특별한 제한이 없습니다.
np.matmul
import numpy as np
A = np.array([[1,0],[0,1]])
B = np.array([[4,1],[2,2]])
print(np.matmul(a,b))
[[4, 1]
[2, 2]]
matmul 메소드의 경우, 행렬 또는 벡터 간 행렬곱을 수행합니다. 따라서 출력값은 행렬 또는 벡터입니다.
두 행렬의 곱셈이 수학적으로 가능하기만 하다면, 행렬의 크기와 차원에는 특별한 제한은 없습니다.
np.transpose
import numpy as np
A = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(np.transpose(A))
[[1,4,7]
[2,5,8]
[3,6,9]]
위 예시처럼, 입력된 행렬의 전치행렬을 반환합니다.
여기서는 3x3 matrix만 보여드렸지만, 행과 열의 개수가 다를 경우에도 전치행렬 연산을 적용할 수 있으며, numpy 라이브러리는 이를 지원합니다.
'Python > Numpy' 카테고리의 다른 글
[Python] 파이썬 numpy 행렬 결합 - hstack, vstack (0) | 2024.04.26 |
---|---|
[Python] 파이썬 numpy 행렬 대소관계 비교 - greater, less, equal (0) | 2024.04.25 |
[Python] 파이썬 numpy 행렬 생성과 반복 - repeat, tile (0) | 2024.04.24 |
[Python] 파이썬 numpy 행렬 생성 - ones, ones_like, zeros, zeros_like, identity (2) | 2024.04.20 |
[Python] 파이썬 numpy 행렬 생성 - arange, linspace (0) | 2024.04.19 |