
numpy의 dot() 함수로 간단하게 구현할 수 있다.
[In]
import numpy as np
a = np.array([[0,1,2],
[1,2,3]]) # 2x3 행렬
b = np.array([[2,1],
[2,1],
[2,1]]) # 3x2 행렬
print(np.dot(a,b)) # 2x2 행렬
[Out]
[[ 6 3]
[12 6]]

Python에서는 * 기호를 통해 요소별 곱(아디마르 곱)을 실행할 수 있다.
[In]
import numpy as np
a = np.array([[0,1,2],
[3,4,5],
[6,7,8]]) # 3x3 행렬
b = np.array([[0,1,2],
[2,0,1],
[1,2,0]]) # 3x3 행렬
print(a*b)
[Out]
[[ 0 1 4]
[ 6 0 5]
[ 6 14 0]]