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

Tính tích Kronecker của mảng 4D và 3D trong Python


Để lấy tích Kronecker của mảng 4 chiều và 3 chiều, dùng numpy.kron() trong NumPy Python. Tính tích Kronecker, một mảng tổ hợp gồm các khối của mảng thứ hai tỷ lệ bởi mảng thứ nhất.

Hàm giả định số chiều của a và b giống nhau, nếu cần thêm 1 vào mảng nhỏ hơn. Nếu a.shape = (r0,r1,..,rN) và b.shape = (s0,s1,...,sN), tích Kronecker có hình dạng (r0*s0, r1*s1, ..., rN*sN). Các phần tử là tích của phần tử từ a và b.

Các bước thực hiện

Nhập NumPy:

import numpy as np

Tạo hai mảng chiều khác nhau:

arr1 = np.arange(40).reshape((2, 5, 2, 2))
arr2 = np.arange(18).reshape((2, 3, 3))

Hiển thị mảng:

print("Mảng 1...\n", arr1)
print("\nMảng 2...\n", arr2)

Kiểm tra số chiều:

print("\nSố chiều Mảng 1...\n", arr1.ndim)
print("\nSố chiều Mảng 2...\n", arr2.ndim)

Kiểm tra hình dạng:

print("\nHình dạng Mảng 1...\n", arr1.shape)
print("\nHình dạng Mảng 2...\n", arr2.shape)

Tính tích Kronecker:

print("\nKết quả (Tích Kronecker)...\n", np.kron(arr1, arr2))

Ví dụ hoàn chỉnh

import numpy as np

arr1 = np.arange(40).reshape((2, 5, 2, 2))
arr2 = np.arange(18).reshape((2, 3, 3))

print("Mảng 1...\n", arr1)
print("\nMảng 2...\n", arr2)
print("\nSố chiều Mảng 1...\n", arr1.ndim)
print("\nSố chiều Mảng 2...\n", arr2.ndim)
print("\nHình dạng Mảng 1...\n", arr1.shape)
print("\nHình dạng Mảng 2...\n", arr2.shape)
print("\nKết quả (Tích Kronecker)...\n", np.kron(arr1, arr2))

Kết quả đầu ra

Mảng 1...
[[[[ 0  1] [ 2  3]] [[ 4  5] [ 6  7]] [[ 8  9] [10 11]] [[12 13] [14 15]] [[16 17] [18 19]]]
 [[[20 21] [22 23]] [[24 25] [26 27]] [[28 29] [30 31]] [[32 33] [34 35]] [[36 37] [38 39]]]]
Mảng 2...
[[[ 0  1  2] [ 3  4  5] [ 6  7  8]]
 [[ 9 10 11] [12 13 14] [15 16 17]]]
Số chiều Mảng 1...
4
Số chiều Mảng 2...
3
Hình dạng Mảng 1...
(2, 5, 2, 2)
Hình dạng Mảng 2...
(2, 3, 3)
Kết quả (Tích Kronecker)...
[[[[  0   0   0   0   1   2] [  0   0   0   3   4   5] ... ]]]