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

파이썬 NumPy로 차원이 다른 두 벡터(배열)의 외적 계산하기

두 벡터의 외적(cross product)을 계산하려면 파이썬 NumPy에서 제공하는 numpy.cross() 메서드를 사용하면 됩니다. 이 메서드는 벡터의 외적인 c를 반환합니다.

numpy.cross() 메서드의 주요 매개변수

  • a — 첫 번째 벡터(들)의 성분
  • b — 두 번째 벡터(들)의 성분
  • axisa — 벡터를 정의하는 a의 축 (기본값: 마지막 축)
  • axisb — 벡터를 정의하는 b의 축 (기본값: 마지막 축)
  • axisc — 외적 결과 벡터가 저장되는 c의 축 (기본값: 마지막 축). 입력 벡터가 모두 2차원일 경우 반환값이 스칼라이므로 무시됩니다.
  • axis — 지정할 경우 a, b, c에 공통으로 적용되어 벡터와 외적을 정의하는 축입니다. axisa, axisb, axisc보다 우선 적용됩니다.

구현 단계

먼저 필요한 라이브러리를 임포트합니다.

import numpy as np

차원이 서로 다른 두 벡터를 생성합니다. 여기서는 int 타입의 요소들을 사용했습니다.

arr1 = [13, 11, 19]
arr2 = [19, 10]

생성한 벡터를 화면에 출력합니다.

print("Vector 1...\n", arr1)
print("\nVector 2...\n", arr2)

numpy.cross() 메서드를 호출하여 두 벡터의 외적을 계산합니다.

print("\nResult...\n", np.cross(arr1, arr2))

전체 예제 코드

import numpy as np

# 차원이 다른 두 벡터 생성
# int 타입의 요소 삽입
arr1 = [13, 11, 19]
arr2 = [19, 10]

# 벡터 출력
print("Vector 1...\n", arr1)
print("\nVector 2...\n", arr2)

# numpy.cross() 메서드로 두 벡터의 외적 계산
# 메서드는 벡터 외적인 c를 반환합니다.
print("\nResult...\n", np.cross(arr1, arr2))

실행 결과

Vector 1...
[13, 11, 19]

Vector 2...
[19, 10]

Result...
[-190 361 -79]

실행 결과를 보면, 3차원 벡터 [13, 11, 19]와 2차원 벡터 [19, 10]의 외적으로 [-190 361 -79]가 반환된 것을 확인할 수 있습니다. numpy.cross()는 차원이 다른 배열도 자동으로 처리해 주기 때문에 별도의 변환 작업 없이 간편하게 사용할 수 있습니다.