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).