numpy.einsum() thực hiện co tensor theo quy ước Einstein summation. Subscript chỉ định chỉ số co (summation indices).
Ví dụ: co tensor 3D
import numpy as np
arr1 = np.arange(60.).reshape(3, 4, 5) # ijk
arr2 = np.arange(24.).reshape(4, 3, 2) # jil
print("Mảng 1 hình dạng:", arr1.shape)
print("Mảng 2 hình dạng:", arr2.shape)
# Co tensor: ijk, jil -> kl (co j và i)
result = np.einsum('ijk,jil->kl', arr1, arr2)
print("Kết quả hình dạng:", result.shape)
print("Kết quả:", result)
Kết quả
Mảng 1 hình dạng: (3, 4, 5)
Mảng 2 hình dạng: (4, 3, 2)
Kết quả hình dạng: (5, 2)
Kết quả: [[4400. 4730.]
[4532. 4874.]
[4664. 5018.]
[4796. 5162.]
[4928. 5306.]]
Chỉ số 'i' (size 3) và 'j' (size 4) bị co (summed over), chỉ số 'k' (5) và 'l' (2) còn lại tạo ra kết quả (5,2).