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

Co tensor với quy ước Einstein summation trong Python

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).