NumPy 逐元素運算中的廣播問題
對不同形狀的NumPy 數組使用逐元素運算時,可能會遇到錯誤「 ValueError:操作數無法與形狀一起廣播。
NumPy 逐元素操作中的廣播
廣播允許擴展一個或兩個數組尺寸以使它們兼容元素操作。維度值為 1 或缺少的維度可用於廣播,允許不同形狀的陣列以元素相乘。
範例錯誤
考慮下列程式碼,其中X 是形狀(m,n) 的陣列,y 是形狀的陣列(n,1):
X * y
此程式碼將引發ValueError,因為維度不相容:
(97,2) x (2,1)
矩陣乘法與依元素乘法
在NumPy 中,星號(*) 運算子用於逐元素乘法,而dot() 函數用於矩陣乘法。矩陣乘法需要相容的維度,而逐元素乘法則需要可以一起廣播的維度。
解
要解決該錯誤,可以使用dot()函數來執行矩陣乘法:
X.dot(y)
或者,您可以在執行先前修改數組的形狀按元素進行操作,以確保它們是可廣播的。
附加說明
以上是為什麼在 NumPy 逐元素運算中出現「ValueError:運算元無法一起廣播」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!