본문 바로가기
파이썬/통계분석

[파이썬 강의] 52. 2차원 배열(행렬)의 행렬곱

by 만다린망고 2021. 10. 14.
반응형

행렬의 곱셈은 아래와 같이 정의됩니다. 

$\begin{bmatrix}
a_{11} & a_{12} \\ 
a_{21} & a_{22}
\end{bmatrix}
\begin{bmatrix}
b_{11} & b_{12} \\ 
b_{21} & b_{22}
\end{bmatrix}
=
\begin{bmatrix}
a_{11}b_{11}+a_{12}b_{21} & a_{11}b_{12}+a_{12}b_{22} \\ 
a_{21}b_{11}+a_{22}b_{21} & a_{21}b_{12}+a_{22}b_{22}
\end{bmatrix}
$

숫자를 넣어서도 계산해봅시다. 

$\begin{bmatrix}
1 & 2 \\ 
3 & 4
\end{bmatrix}
\begin{bmatrix}
5 & 6 \\ 
7 & 8
\end{bmatrix}
=
\begin{bmatrix}
19 & 22 \\ 
43 & 50
\end{bmatrix}$

위 곱셈을 파이썬에서 해봅시다. 파이썬에서 행렬의 곱셈을 하는 방법은 세가지가 있습니다. 

1) dot 함수 사용
2) matmul 함수 사용
3) @ 연산자 사용

>>> m1=np.array([[1,2],[3,4]])
>>> m1
array([[1, 2],
       [3, 4]])
>>> m2=np.array([[5,6],[7,8]])
>>> m2
array([[5, 6],
       [7, 8]])
>>> 
>>> np.dot(m1,m2)
array([[19, 22],
       [43, 50]])
>>> 
>>> np.matmul(m1,m2)
array([[19, 22],
       [43, 50]])
>>> 
>>> m1@m2
array([[19, 22],
       [43, 50]])
반응형

댓글