Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Trả về tích vô hướng nhiều vectơ của hai vectơ và thay đổi hướng kết quả trong Python

Để tính tích vô hướng (cross product) của hai vectơ, sử dụng phương thức numpy.cross() trong Python NumPy. Phương thức trả về c, tích vô hướng của vectơ. Tham số thứ nhất là a, thành phần của vectơ đầu tiên. Tham số thứ hai là b, thành phần của vectơ thứ hai. Tham số thứ ba là axisa, trục của a định nghĩa vectơ. Mặc định là trục cuối. Tham số thứ tư là axisb, trục của b định nghĩa vectơ. Mặc định là trục cuối.

Tham số thứ năm là axisc, trục của c chứa vectơ tích vô hướng. Bỏ qua nếu cả hai vectơ đầu vào có chiều 2, vì kết quả là scalar. Mặc định là trục cuối. Tham số thứ sáu là axis, nếu được định nghĩa, trục của a, b và c định nghĩa vectơ và tích vô hướng. Ghi đè axisa, axisb và axisc.

Các bước thực hiện

Trước tiên, nhập thư viện cần thiết:

import numpy as np

Tạo hai vectơ. Chúng ta chèn các phần tử kiểu int:

arr1 = np.array([[5, 10, 15], [30, 35, 40]])
arr2 = np.array([[30, 35, 40], [5, 10, 15]])

Hiển thị các vectơ:

print("Vectơ 1...\n", arr1)
print("\nVectơ 2...\n", arr2)

Để tính tích vô hướng của hai vectơ, sử dụng numpy.cross() với axisc=0:

print("\nKết quả...\n", np.cross(arr1, arr2, axisc=0))

Ví dụ hoàn chỉnh

import numpy as np

# Tạo hai vectơ
arr1 = np.array([[5, 10, 15], [30, 35, 40]])
arr2 = np.array([[30, 35, 40], [5, 10, 15]])

# Hiển thị vectơ
print("Vectơ 1...\n", arr1)
print("\nVectơ 2...\n", arr2)

# Tính tích vô hướng với axisc=0
print("\nKết quả...\n", np.cross(arr1, arr2, axisc=0))

Kết quả đầu ra

Vectơ 1...
 [[ 5 10 15]
 [30 35 40]]
Vectơ 2...
 [[30 35 40]
 [ 5 10 15]]
Kết quả...
 [[-125 125]
 [ 250 -250]
 [-125 125]]

Giải thích: Với axisc=0, kết quả được đặt theo trục 0 (hàng) thay vì trục mặc định -1 (cột). Mỗi cặp hàng tương ứng của arr1 và arr2 tạo ra một vectơ tích vô hướng 3D, và 3 thành phần của nó được xếp theo hàng.