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

Tích trong (inner product) của hai mảng đa chiều trong Python

numpy.inner() cho mảng đa chiều: tổng tích trên trục cuối cùng. Với ma trận 2D shape (M, K) và (N, K), kết quả shape (M, N) với result[i, j] = sum(arr1[i] * arr2[j]).

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

Nhập NumPy, tạo hai ma trận 2x2:

import numpy as np

arr1 = np.array([[5, 10], [15, 20]])
arr2 = np.array([[6, 12], [18, 24]])

print("Ma trận 1...\n", arr1)
print("\nMa trận 2...\n", arr2)
print("\nSố chiều Ma trận 1...\n", arr1.ndim)
print("\nSố chiều Ma trận 2...\n", arr2.ndim)
print("\nHình dạng Ma trận 1...\n", arr1.shape)
print("\nHình dạng Ma trận 2...\n", arr2.shape)

# Tích trong
print("\nKết quả (Tích trong)...\n", np.inner(arr1, arr2))

Ví dụ hoàn chỉnh

import numpy as np

arr1 = np.array([[5, 10], [15, 20]])
arr2 = np.array([[6, 12], [18, 24]])
print("Ma trận 1...\n", arr1)
print("\nMa trận 2...\n", arr2)
print("\nSố chiều Ma trận 1...\n", arr1.ndim)
print("\nSố chiều Ma trận 2...\n", arr2.ndim)
print("\nHình dạng Ma trận 1...\n", arr1.shape)
print("\nHình dạng Ma trận 2...\n", arr2.shape)
print("\nKết quả (Tích trong)...\n", np.inner(arr1, arr2))

Kết quả đầu ra

Ma trận 1...
 [[ 5 10]
 [15 20]]
Ma trận 2...
 [[ 6 12]
 [18 24]]
Số chiều Ma trận 1...
 2
Số chiều Ma trận 2...
 2
Hình dạng Ma trận 1...
 (2, 2)
Hình dạng Ma trận 2...
 (2, 2)
Kết quả (Tích trong)...
 [[150 330]
 [330 750]]

Giải thích: Hàng 1·Hàng 1 = 5*6+10*12=150; Hàng 1·Hàng 2 = 5*18+10*24=330; Hàng 2·Hàng 1 = 15*6+20*18=330; Hàng 2·Hàng 2 = 15*18+20*24=750.