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

Phép nhân vô hướng với quy ước tổng kết Einstein trong Python

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

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.

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 bằng cách sử dụng numpy.arange () và reshape () -

arr = np.arange(6).reshape(2,3)

Giá trị là vô hướng -

val = 2

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)

Để thực hiện phép nhân vô hướng với quy ước tổng kết Einstein, hãy sử dụng phương thức numpy.einsum () -

print("\nResult (scalar multiplication)...\n",np.einsum('..., ...', val, arr))

Ví dụ

import numpy as np

# Create an array using the numpy.arange() and reshape()
arr = np.arange(6).reshape(2,3)

# The val is the scalar
val = 2

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

# Check the datatype
print("\nDatatype of Array...\n",arr.dtype)

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

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

# To perform scalar multiplication with Einstein summation convention, use the numpy.einsum() method in Python.
print("\nResult (scalar multiplication)...\n",np.einsum('..., ...', val, arr))

Đầu ra

Array...
[[0 1 2]
[3 4 5]]

Datatype of Array...
int64

Dimensions of Array...
2

Shape of Array...
(2, 3)

Result (scalar multiplication)...
[[ 0 2 4]
[ 6 8 10]]