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

Nhận sản phẩm Kronecker của hai mảng với các kích thước khác nhau trong Python

Để nhận sản phẩm Kronecker của hai mảng có kích thước khác nhau, hãy sử dụng phương thức numpy.kron () trong Python Numpy. Tính toán sản phẩm Kronecker, một mảng tổng hợp được tạo thành từ các khối của mảng thứ hai được chia tỷ lệ bởi mảng đầu tiên

Hàm giả định rằng số kích thước của a và b là như nhau, nếu cần, ưu tiên kích thước nhỏ nhất bằng các kích thước. Nếu a.shape =(r0, r1, .., rN) và b.shape =(s0, s1, ..., sN), sản phẩm Kronecker có hình dạng (r0 * s0, r1 * s1, ..., rN * SN). Các phần tử là sản phẩm của các phần tử froma và b, được tổ chức một cách rõ ràng bởi -

# kron(a,b)[k0,k1,...,kN] = a[i0,i1,...,iN] * b[j0,j1,...,jN]

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 hai mảng numpy với các kích thước khác nhau bằng phương thức arange () và reshape () -

arr1 = np.arange(20).reshape((2,5,2))
arr2 = np.arange(6).reshape((2,3))

Hiển thị các mảng -

print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

Kiểm tra Kích thước của cả hai mảng -

print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

Kiểm tra Hình dạng của cả hai mảng -

print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

Để nhận sản phẩm Kronecker của hai mảng, hãy sử dụng phương thức numpy.kron () trong Python -

print("\nResult (Kronecker product)...\n",np.kron(arr1, arr2))

Ví dụ

import numpy as np

# Creating two numpy arrays with different dimensions using the arange() and reshape() method
arr1 = np.arange(20).reshape((2,5,2))
arr2 = np.arange(6).reshape((2,3))

# Display the arrays
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

# Check the Dimensions of both the array
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

# Check the Shape of both the array
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

# To get the Kronecker product of two arrays, use the numpy.kron() method in Python Numpy
print("\nResult (Kronecker product)...\n",np.kron(arr1, arr2))

Đầu ra

Array1...
[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]]

[[10 11]
[12 13]
[14 15]
[16 17]
[18 19]]]

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

Dimensions of Array1...
3

Dimensions of Array2...
2

Shape of Array1...
(2, 5, 2)

Shape of Array2...
(2, 3)

Result (Kronecker product)...
[[[ 0 0 0 0 1 2]
[ 0 0 0 3 4 5]
[ 0 2 4 0 3 6]
[ 6 8 10 9 12 15]
[ 0 4 8 0 5 10]
[12 16 20 15 20 25]
[ 0 6 12 0 7 14]
[18 24 30 21 28 35]
[ 0 8 16 0 9 18]
[24 32 40 27 36 45]]

[[ 0 10 20 0 11 22]
[30 40 50 33 44 55]
[ 0 12 24 0 13 26]
[36 48 60 39 52 65]
[ 0 14 28 0 15 30]
[42 56 70 45 60 75]
[ 0 16 32 0 17 34]
[48 64 80 51 68 85]
[ 0 18 36 0 19 38]
[54 72 90 57 76 95]]]