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

Nhân vô hướng với quy ước Einstein summation trong Python

Sử dụng numpy.einsum() với subcript '..., ...' (ellipsis) để nhân vô hướng với mảng bất kỳ chiều.

Ví dụ

import numpy as np

arr = np.arange(6).reshape(2, 3)  # [[0,1,2], [3,4,5]]
val = 2

print("Mảng:", arr)
print("Kiểu:", arr.dtype)
print("Số chiều:", arr.ndim)
print("Kích thước:", arr.shape)

# Nhân vô hướng với ellipsis
result = np.einsum('..., ...', val, arr)
print("Kết quả:", result)

Kết quả

Mảng: [[0 1 2]
 [3 4 5]]
Kiểu: int64
Số chiều: 2
Kích thước: (2, 3)
Kết quả: [[ 0  2  4]
 [ 6  8 10]]

Ellipsis '...' khớp với mọi chiều còn lại, cho phép nhân vô hướng với mảng bất kỳ hình dạng.