在 NumPy 中,你可能會遇到形狀為 (R, 1) 的陣列和(R,)。雖然這些形狀看起來相似,但它們代表了基礎數據的不同解釋。
形狀為 (R, 1) 的陣列是具有 R 行和單列的 2D 陣列。它本質上是一個列向量,可以將其視為 R 元素的列表。相反,形狀為 (R,) 的陣列是具有 R 個元素的一維數組。它實際上是一個列表,每個元素代表一個標量值。
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中文網其他相關文章!