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

การหาผลคูณโครเนคเกอร์ของอาร์เรย์สองชุดที่มีมิติแตกต่างกันใน Python


ภาพรวม

ใช้ numpy.kron() เพื่อหาผลคูณโครเนคเกอร์ของอาร์เรย์ที่มีมิติไม่เท่ากัน ฟังก์ชันจะปรับมิติโดยการเติม 1 ไปด้านหน้าอัตโนมัติ

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

  1. นำเข้าไลบรารี
    import numpy as np
    
  2. สร้างอาร์เรย์มิติต่างกัน
    arr1 = np.arange(20).reshape((2, 5, 2))  # 3 มิติ
    arr2 = np.arange(6).reshape((2, 3))      # 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. คำนวณผลคูณโครเนคเกอร์
    print("\nผลลัพธ์ (Kronecker product)...\n", np.kron(arr1, arr2))
    

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

import numpy as np

arr1 = np.arange(20).reshape((2, 5, 2))
arr2 = np.arange(6).reshape((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)

print("\nผลลัพธ์ (Kronecker product)...\n", np.kron(arr1, arr2))

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

อาร์เรย์ 1...
 [[[ 0  1] [ 2  3] [ 4  5] [ 6  7] [ 8  9]]
  [[10 11] [12 13] [14 15] [16 17] [18 19]]]
อาร์เรย์ 2...
 [[0 1 2]
 [3 4 5]]
มิติของอาร์เรย์ 1...
 3
มิติของอาร์เรย์ 2...
 2
รูปร่างของอาร์เรย์ 1...
 (2, 5, 2)
รูปร่างของอาร์เรย์ 2...
 (2, 3)
ผลลัพธ์ (Kronecker product)...
 [[[ 0  0  0  0  1  2] ... ] ... ]