我想將numpy矩陣的列乘以一起。我遵循此question中給出的代碼。將Numpy矩陣的列乘上的麻煩
這裏是列的樣子:
這是當我嘗試乘以矩陣的兩列在一起會發生什麼。
也許問題是,列存儲不同?其他問題中的某些打印輸出沒有存儲在單獨列表中的號碼。
我想將numpy矩陣的列乘以一起。我遵循此question中給出的代碼。將Numpy矩陣的列乘上的麻煩
這裏是列的樣子:
這是當我嘗試乘以矩陣的兩列在一起會發生什麼。
也許問題是,列存儲不同?其他問題中的某些打印輸出沒有存儲在單獨列表中的號碼。
With np.matrix
, the *
operator does matrix multiplication而不是單元乘法,這是我假設你正在嘗試做的。
您得到一個ValueError
,因爲兩個列向量未正確對齊矩陣乘法。它們的內部尺寸不匹配,因爲它們的形狀分別爲(N, 1)
和(N, 1)
。它們需要爲(1, N)
,(N, 1)
(對於內部產品)或(N, 1)
,(1, N)
(對於外部產品)以便矩陣乘法工作。
如果你選擇堅持使用np.matrix
來保存你的數據,你可以使用np.multiply()
功能做逐元素乘法:
result = np.multiply(new_train_data[:, 0], new_train_data[:, 1])
不過,我會建議你使用np.array
,而不是np.matrix
在未來。使用np.array
*
運算符執行元素方式乘法,並且np.dot()
函數(或陣列的.dot()
方法)執行矩陣乘法。
那麼在答案中,它使用numpy.dot將n * n與n相乘...適合我!
new_train_data
顯然是matrix
(ndarray
的子類)。它的*
被定義爲矩陣乘法(如np.dot
),而不是正則numpy數組的逐個元素乘法。因此「對齊」錯誤消息。
如何定義'new_train_data'?它看起來不像香草二維數組。 – gboffi 2015-02-10 17:20:27