numPy dot과 matmul 함수 계산 방법의 차이를 알아본다.

용어 정리

  • 행렬(matrix): 일반적으로 2차원 구조(행과 열)를 갖는 것
  • 텐서(Tensor): 행렬을 일반화한 것(즉, 3차원, 4차원 등으로 확장한 것)


정의

  • numpy.dot(a, b, out=None)
    Dot product of two arrays.
  • numpy.matmul(a, b, out=None)
    Matrix product of two arrays.

numpy.dot은 두 배열의 내적곱(dot product)라고 적혀있는 반면에, numpy.matmul은 두 배열의 행렬곱(matrix product)라고 적혀있다.

계산 방식 비교

2024-10-30-numpy-dot-vs-matmul


예시 코드

 import numpy as np

 A = np.array([
        [[3, 1],
        [3, 3]],
  
        [[1, 1], 
        [3, 2]]])
 B = np.array([
        [[3, 3],
        [3, 3]],

        [[1, 3],
        [2, 1]]])

 print(np.dot(A, B))
        [[[[12 12]
        [ 5 10]]
        
        [[18 18]
        [ 9 12]]]

        [[[ 6  6]
        [ 3  4]]
        
        [[15 15]
        [ 7 11]]]]

 print(np.matmul(A, B))
        [[[12 12]
        [18 18]]
        
        [[ 3  4]
        [ 7 11]]]


출처

정의 코드 예제

댓글남기기