Python에서 두 배열의 내적(Inner Product)을 구하려면 numpy.inner() 메서드를 사용하면 됩니다. 1차원 배열의 경우 일반적인 벡터 내적이 계산되고, 그 이상의 차원에서는 마지막 축을 기준으로 곱들의 합(sum product)이 계산됩니다.
이 메서드의 매개변수는 a와 b, 즉 두 개의 벡터입니다. 참고로 a와 b가 스칼라가 아닌 경우, 두 배열의 마지막 차원 크기는 반드시 일치해야 합니다.
단계별 진행 과정
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
array() 메서드를 사용해 1차원 NumPy 배열 두 개를 생성합니다.
arr1 = np.array([5, 10, 15])
arr2 = np.array([20, 25, 30])
생성된 배열을 화면에 출력합니다.
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)두 배열의 차원(ndim)을 확인합니다.
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)두 배열의 형태(shape)를 확인합니다.
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)마지막으로 numpy.inner() 메서드를 사용해 두 배열의 내적을 구합니다.
print("\nResult (Inner Product)...\n",np.inner(arr1, arr2))전체 예제 코드
import numpy as np
# array() 메서드로 1차원 NumPy 배열 두 개 생성
arr1 = np.array([5, 10, 15])
arr2 = np.array([20, 25, 30])
# 배열 출력
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)
# 두 배열의 차원 확인
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)
# 두 배열의 형태 확인
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)
# numpy.inner() 메서드로 두 배열의 내적 계산
print("\nResult (Inner Product)...\n",np.inner(arr1, arr2))
실행 결과
Array1...
[ 5 10 15]
Array2...
[20 25 30]
Dimensions of Array1...
1
Dimensions of Array2...
1
Shape of Array1...
(3,)
Shape of Array2...
(3,)
Result (Inner Product)...
800
위 실행 결과에서 볼 수 있듯이, 두 배열 [5, 10, 15]와 [20, 25, 30]의 내적은 각 요소끼리 곱한 후 모두 더한 값인 5×20 + 10×25 + 15×30 = 800이 됩니다.