考慮以下代碼。
import numpy as np
array1 = np.random.random((3,3,3))
array2 = np.random.random((3,3,3))
array3 = array1@array2
包含什么array3?我知道它也有形狀(3,3,3)。如果array1和array2是二維的,那么array3將是陣列的矩陣乘法。這個@操作有數學意義嗎?
uj5u.com熱心網友回復:
這在PEP 465中有解釋:
對于超過 2 個維度的輸入,我們將最后兩個維度視為要相乘的矩陣的維度,并在其他維度上“廣播”。這提供了一種在單個操作中快速計算多個矩陣乘積的便捷方法。例如,
arr(10, 2, 3) @ arr(10, 3, 4)執行 10 次單獨的矩陣乘法,每次乘以 2x3 和 3x4 矩陣以生成 2x4 矩陣,然后將 10 個結果矩陣一起回傳到形狀為 (10, 2, 4) 的陣列中。
因此,您的代碼array3[0, :, :]包含矩陣矩陣乘法的結果array1[0, :, :] @ array2[0, :, :],依此類推。
uj5u.com熱心網友回復:
在numpy@中做矩陣乘法
雖然*元素明智的乘法或Hadamard 產品
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/512731.html
下一篇:Python/Sage中的路徑
