파이썬에서는 NumPy 모듈의 numpy.dot()을 사용하여 벡터의 내적을 구할 수 있습니다. numpy.dot은 벡터, 행렬 또는 텐서의 곱연산을 위해 사용됩니다. a가 N차원 배열이고 b가 2 이상의 m차원 배열이라면, dot(a, b)는 a의 마지막 축과 b의 뒤에서 두 번째 축의 내적으로 계산합니다.
다음 예제로 내적의 원리를 살펴봅시다.
In [32]:
# NumPy 라이브러리를 호출합니다 import numpy as np # A, B1, B2, B3, B4, B5, B6 변수에 벡터/행렬을 저장합니다 A = np.arange(1*2*3).reshape((1,2,3)) B1 = np.arange(1*2*3).reshape((1,2,3)) B2 = np.arange(1*2*3).reshape((1,3,2)) B3 = np.arange(1*2*3).reshape((2,1,3)) B4 = np.arange(1*2*3).reshape((2,3,1)) B5 = np.arange(1*2*3).reshape((3,1,2)) B6 = np.arange(1*2*3).reshape((3,2,1)) # numpy.dot()을 사용하여 벡터의 내적을 구합니다 np.dot(A, B1) # 결과는 오류가 맞습니다
ValueError: shapes (1,2,3) and (1,2,3) not aligned: 3 (dim 2) != 2 (dim 1)
In [33]:
np.dot(A, B2)
Out [33]:
array([[[[10, 13]], [[28, 40]]]])