Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การคำนวณผลคูณเทนเซอร์สำหรับอาร์เรย์มิติต่างกันใน Python


ภาพรวม

ใช้ numpy.tensordot() เพื่อคำนวณ tensor dot product ของอาร์เรย์ที่มีมิติต่างกัน โดยไม่ระบุ axes (ใช้ค่าเริ่มต้น)

ขั้นตอนการทำงาน

  1. นำเข้าไลบรารี
    import numpy as np
    
  2. สร้างอาร์เรย์มิติต่างกัน
    arr1 = np.array(range(1, 9))
    arr1.shape = (2, 2, 2)
    arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
    arr2.shape = (2, 2)
    
  3. ตรวจสอบคุณสมบัติ
    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)
    
  4. คำนวณ tensor dot product
    print("\nTensor dot product...\n", np.tensordot(arr1, arr2))
    

ตัวอย่างโค้ดสมบูรณ์

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

ผลลัพธ์ที่คาดหวัง

อาร์เรย์ 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...
 ['pqqrrrssss' 'pppppqqqqqqrrrrrrrssssssss']