두 벡터의 외적(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()는 차원이 다른 배열도 자동으로 처리해 주기 때문에 별도의 변환 작업 없이 간편하게 사용할 수 있습니다.