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

Tích tensor cho mảng khác chiều với axes dạng mảng trong Python

numpy.tensordot() tính tích tensor tổng quát. Tham số axes có thể là tuple của hai mảng chỉ số axes: (a_axes, b_axes).

Ví dụ: axes = ((0,1), (0,1))

import numpy as np

# Mảng 3D (2,2,2) chứa số nguyên 1-8
arr1 = np.array(range(1, 9)).reshape(2, 2, 2)
# Mảng 2D (2,2) chứa ký tự
arr2 = np.array(['p', 'q', 'r', 's'], dtype=object).reshape(2, 2)

print("Mảng 1:", arr1)
print("Mảng 2:", arr2)
print("Kích thước mảng 1:", arr1.shape)
print("Kích thước mảng 2:", arr2.shape)

# Co trục (0,1) của arr1 với (0,1) của arr2
result = np.tensordot(arr1, arr2, ((0, 1), (0, 1)))
print("Tích tensor:", result)

Kết quả

Mảng 1: [[[1 2] [3 4]] [[5 6] [7 8]]]
Mảng 2: [['p' 'q'] ['r' 's']]
Kích thước mảng 1: (2, 2, 2)
Kích thước mảng 2: (2, 2)
Tích tensor: ['pqqqrrrrrsssssss' 'ppqqqqrrrrrrssssssss']

Hai trục đầu của arr1 (kích thước 2×2=4) co với hai trục của arr2 (2×2=4), kết quả là mảng 1D còn lại trục cuối của arr1 (kích thước 2).