Subscript 'ij,j' trong numpy.einsum() thực hiện nhân ma trận-vectơ: chỉ số 'j' bị co, 'i' còn lại.
Ví dụ
import numpy as np
arr1 = np.arange(25).reshape(5, 5) # ma trận 5x5
arr2 = np.arange(5) # vectơ 5
print("Ma trận:", arr1)
print("Vectơ:", arr2)
print("Kích thước ma trận:", arr1.shape)
print("Kích thước vectơ:", arr2.shape)
# Nhân ma trận-vectơ: ij,j -> i
result = np.einsum('ij,j', arr1, arr2)
print("Kết quả:", result)
Kết quả
Ma trận: [[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
Vectơ: [0 1 2 3 4]
Kích thước ma trận: (5, 5)
Kích thước vectơ: (5,)
Kết quả: [ 30 80 130 180 230]
Tương đương arr1 @ arr2 hoặc np.dot(arr1, arr2). Mỗi phần tử kết quả[i] = sum_j arr1[i,j] * arr2[j].