NumPy
numpy를 이용한 행렬 계산
km1n
2021. 12. 21. 17:30
대원칙 : 행렬곱은 기본적으로 모양이 맞아야 가능하다.
(m x k) · (k x n) = (m x n)
1. numpy * operator (asterisk)
'별 연산자' 또는 '애스터리스크'라고 불리는 곱연산
스칼라 곱을 하는 거라 브로드 캐스팅 가능
형태(shape)가 동일한 두 행렬을 원소끼리(element-wise) 곱하는 연산자
행렬의 크기가 동일하면 * 연산자는 원소끼리 곱하기를 계산한다.
2. numpy.dot
두 벡터(vector)의 내적, 내적곱, 점곱 등을 계산하는 함수
내적(dot): (n,m).dot((m,k)) = (n,k)
3. numpy.matmul (@ operator)
행렬의 곱연산을 위해 정의된 함수이다. numpy dot과 비슷해보이지만, 3차원 이상의 행렬곱을 계산하는 방식이 서로 다르다.
행렬곱(@): (n,m)@(m,k) = (n,k)
matmul과 dot의 큰 차이점은 2가지다. 첫번째는 차이로, dot는 행렬과 상수(constant)의 곱셈을 허용하지만, matmul은 Error를 일으킨다.
두번째 차이는, 3차원 이상의 행렬곱(Tensor multiplication)을 수행할 경우, dot와 matmul은 전혀 다른 결과를 낸다.