본문 바로가기
5-2 . Numpy 제공 자료구조/Array 연산

[파이썬 numpy] 행렬의 곱셈 하는 법 (dot 메소드)

by 만다린망고 2020. 11. 10.
반응형

[파이썬 numpy] 

행렬의 곱셈 하는 법 (dot 메소드)


파이썬에서 행렬의 곱셈을 할 때는 dot 메소드를 사용합니다. inner 메소드도 행렬의 곱셈이 수행되기는 하나 우리가 알고 있던 행렬의 곱셈과는 결과가 다릅니다. dot 메소드와 inner 메소드의 비교는 다른 글에서 하겠습니다. 


이번 글에서는 dot 메소드를 사용하여 행렬의 곱셈을 해봅시다. 


두 행렬을 정의합시다. 


>>> import numpy as np

>>> A1=np.array([[1,2,3],[4,5,6]])

>>> A2=np.array([[1,2,3],[4,5,6]])


dot 메소드를 적용해봅시다. 


>>> np.dot(A1,A2)

Traceback (most recent call last):


  File "<ipython-input-450-9d56b3b8777d>", line 1, in <module>

    np.dot(A1,A2)


  File "<__array_function__ internals>", line 6, in dot


ValueError: shapes (2,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)


에러가 발생합니다. 행렬의 차원이 맞지 않아서입니다. A1 행렬은 2행3열, A2행렬도 2행3열이라 계산시 (2X3)(2X3) 으로 차원이 맞지 않습니다. A2 행렬을 전치(transpose)해주면 해결됩니다. 


>>> np.dot(A1,A2.T)

array([[14, 32],

       [32, 77]])


반응형

댓글