首頁 > 後端開發 > Python教學 > 為什麼在 NumPy 逐元素運算中出現「ValueError:運算元無法一起廣播」錯誤?

為什麼在 NumPy 逐元素運算中出現「ValueError:運算元無法一起廣播」錯誤?

Susan Sarandon
發布: 2024-12-08 20:29:15
原創
544 人瀏覽過

Why Do I Get a

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.matrix 類型,則可以使用星號運算子矩陣乘法。
  • 在不相容形狀的陣列上使用 dot() 時,您將收到「ValueError:矩陣未對齊。」
  • 有關廣播規則的全面說明,請參閱 NumPy 文件。

以上是為什麼在 NumPy 逐元素運算中出現「ValueError:運算元無法一起廣播」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板