ภาพรวม
ใช้ numpy.tensordot() พร้อมพารามิเตอร์ axes=1 เพื่อคำนวณ tensor dot product ตามแกนที่กำหนดเฉพาะ
พารามิเตอร์ axes
- หากเป็น integer N: รวม N แกนสุดท้ายของ a และ N แกนแรกของ b
- ขนาดแกนที่สอดคล้องต้องตรงกัน
ขั้นตอนการทำงาน
- นำเข้าไลบรารี
import numpy as np - สร้างอาร์เรย์มิติต่างกัน
arr1 = np.array(range(1, 9)) arr1.shape = (2, 2, 2) arr2 = np.array(('p', 'q', 'r', 's'), dtype=object) arr2.shape = (2, 2) - ตรวจสอบคุณสมบัติ
print("อาร์เรย์ 1...\n", arr1) print("\nอาร์เรย์ 2...\n", arr2) print("\nมิติอาร์เรย์ 1...\n", arr1.ndim) print("\nมิติอาร์เรย์ 2...\n", arr2.ndim) print("\nรูปร่างอาร์เรย์ 1...\n", arr1.shape) print("\nรูปร่างอาร์เรย์ 2...\n", arr2.shape) - คำนวณ tensor dot product ด้วย axes=1
print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes=1))
ตัวอย่างโค้ดสมบูรณ์
import numpy as np
arr1 = np.array(range(1, 9))
arr1.shape = (2, 2, 2)
arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
arr2.shape = (2, 2)
print("อาร์เรย์ 1...\n", arr1)
print("\nอาร์เรย์ 2...\n", arr2)
print("\nมิติของอาร์เรย์ 1...\n", arr1.ndim)
print("\nมิติของอาร์เรย์ 2...\n", arr2.ndim)
print("\nรูปร่างของอาร์เรย์ 1...\n", arr1.shape)
print("\nรูปร่างของอาร์เรย์ 2...\n", arr2.shape)
print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes=1))
ผลลัพธ์ที่คาดหวัง
อาร์เรย์ 1...
[[[1 2] [3 4]] [[5 6] [7 8]]]
อาร์เรย์ 2...
[['p' 'q'] ['r' 's']]
มิติของอาร์เรย์ 1...
3
มิติของอาร์เรย์ 2...
2
รูปร่างของอาร์เรย์ 1...
(2, 2, 2)
รูปร่างของอาร์เรย์ 2...
(2, 2)
Tensor dot product...
[[['prr' 'qss'] ['ppprrrr' 'qqqssss']]
[['ppppprrrrrr' 'qqqqqssssss'] ['ppppppprrrrrrrr' 'qqqqqqqssssssss']]]