กำหนดเมตริกซ์สองตัว a และ b และอ็อบเจ็กต์ array_like ที่มีอ็อบเจ็กต์ array_like สองตัว (a_axes,b_axes) รวมผลคูณขององค์ประกอบ a และ b (ส่วนประกอบ) เหนือแกนที่ระบุโดย a_axes และ b_axes อาร์กิวเมนต์ที่สามสามารถเป็นสเกลาร์ integer_like ที่ไม่ใช่ค่าลบเดียว N; ถ้าเป็นเช่นนั้น มิติ N สุดท้ายของ a และ N แรกของ b จะถูกรวมเข้าด้วยกัน
ในการคำนวณผลิตภัณฑ์เทนเซอร์ดอทสำหรับอาร์เรย์ที่มีขนาดต่างกัน ให้ใช้เมธอด numpy.tensordot() ใน Python พารามิเตอร์ a, b คือเทนเซอร์ถึง "จุด" พารามิเตอร์แกน integer_like ถ้า anint N ให้หาผลรวมของแกน N สุดท้ายของ a และแกน N แรกของ b ตามลำดับ ขนาดของแกนที่สอดคล้องกันต้องตรงกัน แกน =2 สำหรับการหดตัวของเทนเซอร์สองเท่า
ขั้นตอน
ขั้นแรก นำเข้าไลบรารีที่จำเป็น -
import numpy as np
การสร้างอาร์เรย์ numpy สองอันที่มีมิติต่างกันโดยใช้เมธอด array() -
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("Array1...\n",arr1) print("\nArray2...\n",arr2)
ตรวจสอบขนาดของอาร์เรย์ทั้งสอง -
print("\nDimensions of Array1...\n",arr1.ndim) print("\nDimensions of Array2...\n",arr2.ndim)
ตรวจสอบรูปร่างของอาร์เรย์ทั้งสอง -
print("\nShape of Array1...\n",arr1.shape) print("\nShape of Array2...\n",arr2.shape)
ในการคำนวณผลิตภัณฑ์เทนเซอร์ดอทสำหรับอาร์เรย์ที่มีมิติต่างกัน ให้ใช้เมธอด numpy.tensordot() -
print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes = 2))
ตัวอย่าง
import numpy as np # Creating two numpy arrays with different dimensions using the array() method arr1 = np.array(range(1, 9)) arr1.shape = (2, 2, 2) arr2 = np.array(('p', 'q', 'r', 's'), dtype=object) arr2.shape = (2, 2) # Display the arrays print("Array1...\n",arr1) print("\nArray2...\n",arr2) # Check the Dimensions of both the arrays print("\nDimensions of Array1...\n",arr1.ndim) print("\nDimensions of Array2...\n",arr2.ndim) # Check the Shape of both the arrays print("\nShape of Array1...\n",arr1.shape) print("\nShape of Array2...\n",arr2.shape) # To compute the tensor dot product for arrays with different dimensions, use the numpy.tensordot() method in Python print("\nTensor dot product...\n", np.tensordot(arr1, arr2, axes = 2))
ผลลัพธ์
Array1... [[[1 2] [3 4]] [[5 6] [7 8]]] Array2... [['p' 'q'] ['r' 's']] Dimensions of Array1... 3 Dimensions of Array2... 2 Shape of Array1... (2, 2, 2) Shape of Array2... (2, 2) Tensor dot product... ['pqqrrrssss' 'pppppqqqqqqrrrrrrrssssssss']