Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python NumPy inner() 함수로 두 개의 1차원 배열 내적 구하기

Python에서 두 배열의 내적(Inner Product)을 구하려면 numpy.inner() 메서드를 사용합니다. 이 함수는 1차원 배열에 대해서는 일반적인 벡터 내적을 계산하며, 더 높은 차원의 배열에서는 마지막 축(axis)을 기준으로 곱의 합을 반환합니다.

numpy.inner()의 주요 매개변수는 ab, 즉 내적을 계산할 두 벡터입니다. 만약 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() 메서드로 두 배열의 내적 계산
# 1차원 배열에서는 일반적인 벡터 내적,
# 고차원 배열에서는 마지막 축을 기준으로 한 곱의 합이 반환됩니다.
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

내적 결과 해석

위 예제의 결과값 800은 다음과 같이 계산됩니다.

(5 × 20) + (10 × 25) + (15 × 30) = 100 + 250 + 450 = 800

즉, 두 1차원 배열의 대응하는 요소끼리 곱한 후 모두 더한 값이 내적 결과입니다. 이러한 내적 연산은 머신러닝, 신경망의 가중치 계산, 코사인 유사도 측정 등 다양한 수치 계산 분야에서 널리 활용됩니다.