首頁 > 後端開發 > Python教學 > NumPy 陣列:形狀 (R, 1) 和 (R,) 之間有什麼區別以及它如何影響矩陣乘法?

NumPy 陣列:形狀 (R, 1) 和 (R,) 之間有什麼區別以及它如何影響矩陣乘法?

Patricia Arquette
發布: 2024-12-24 16:22:15
原創
601 人瀏覽過

NumPy Arrays: What's the Difference Between Shape (R, 1) and (R,) and How Does it Affect Matrix Multiplication?

NumPy 中形狀 (R, 1) 和 (R,) 有什麼不同?

在 NumPy 中,你可能會遇到形狀為 (R, 1) 的陣列和(R,)。雖然這些形狀看起來相似,但它們代表了基礎數據的不同解釋。

形狀為 (R, 1) 的陣列是具有 R 行和單列的 2D 陣列。它本質上是一個列向量,可以將其視為 R 元素的列表。相反,形狀為 (R,) 的陣列是具有 R 個元素的一維數組。它實際上是一個列表,每個元素代表一個標量值。

為什麼不將 NumPy 設計為有利於 (R, 1) 以便更容易的矩陣乘法?

NumPy 的設計選擇不利於 (R, 1) 1)矩陣乘法的形狀源自於其固有的彈性。允許使用兩種形狀使程式設計師能夠為其特定任務選擇最合適的表示形式。雖然 (R, 1) 形狀更適合矩陣乘法,但 (R,) 形狀在其他情況下可能更可取,例如在處理向量或標量值清單時。

執行矩陣乘法的更好方法

在不明確重塑數組的情況下,還有其他方法可以執行矩陣乘法。例如,使用 np.expand_dims() 函數可以實現所需的形狀變換。或者,您可以利用廣播,NumPy 在某些條件下會自動執行廣播。例如,在表達式numpy.dot(M[:,0], numpy.ones((1, R))) 中,廣播會自動將numpy.ones((1, R)) 擴充為numpy.ones(( R , 1)).

以上是NumPy 陣列:形狀 (R, 1) 和 (R,) 之間有什麼區別以及它如何影響矩陣乘法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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