Computer >> Máy Tính >  >> Lập trình >> Python

Tổng kết trục mảng với quy ước tổng kết Einstein trong Python

Phương thức einsum () đánh giá quy ước tổng kết Einstein về các toán hạng. Sử dụng quy ước tính tổng củaEinstein, nhiều phép toán mảng đại số tuyến tính, đa chiều phổ biến có thể được biểu diễn theo cách đơn giản. Trong chế độ ngầm định, einsum tính toán các giá trị này. Trong mã rõ ràng, einsum cung cấp tính linh hoạt hơn nữa để tính toán các phép toán mảng khác mà có thể không được coi là các phép toán tổng kết Einstein cổ điển, bằng cách tắt hoặc buộc các nhãn chỉ số con được chỉ định tổng hợp.

Đối với các phép tổng hợp trục Mảng (tổng trên một trục) với quy ước tổng kết Einstein, hãy sử dụng phương thức thenumpy.einsum () trong Python. Tham số đầu tiên là chỉ số con. Nó chỉ định các subcript forsummation dưới dạng danh sách các nhãn chỉ số được phân tách bằng dấu phẩy. Tham số thứ 2 là các toán hạng. Lấy các mảng cho hoạt động.

Các bước

Đầu tiên, hãy nhập các thư viện được yêu cầu -

import numpy as np

Tạo một mảng numpy bằng phương thức arange () và reshape () -

arr = np.arange(16).reshape(4,4)

Hiển thị mảng -

print("Our Array...\n",arr)

Kiểm tra các thứ nguyên -

print("\nDimensions of our Array...\n",arr.ndim)

Lấy Datatype -

print("\nDatatype of our Array object...\n",arr.dtype)

Lấy hình dạng -

print("\nShape of our Array object...\n",arr.shape)

Đối với các phép tổng hợp trục Mảng (tổng trên một trục) với quy ước tổng kết Einstein, hãy sử dụng phương thức thenumpy.einsum () trong Python -

print("\nResult...\n",np.einsum('ij->i', arr))

Ví dụ

import numpy as np

# Creating a numpy array using the arange() and reshape() method
arr = np.arange(16).reshape(4,4)

# Display the array
print("Our Array...\n",arr)

# Check the Dimensions
print("\nDimensions of our Array...\n",arr.ndim)

# Get the Datatype
print("\nDatatype of our Array object...\n",arr.dtype)

# Get the Shape
print("\nShape of our Array object...\n",arr.shape)

# For Array axis summations (sum over an axis) with Einstein summation convention, use the numpy.einsum() method in Python.
print("\nResult...\n",np.einsum('ij->i', arr))

Đầu ra

Our Array...
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

Shape of our Array object...
(4, 4)

Result...
[ 6 22 38 54]