[英]matrix - vector multiplication in python (numpy)
我有一個向量(形狀(4,1))和一個矩陣(形狀(4,4))
我試圖使用*運算符將它們相乘,當在矩陣對象上使用時,該運算符是矩陣乘法,但出現值錯誤:
ValueError: shapes (4,1) and (4,4) not aligned: 1 (dim 1) != 4 (dim 0)
我該怎么辦? 我知道如何手動執行此操作,並認為使用numpy相當簡單
您不能將4x1向量與4x4矩陣相乘。
您應該做相反的事情,將矩陣乘以向量。 或轉置向量。
請記住,對於矩陣乘法,第一個矩陣的第二維必須等於第二個矩陣的第一維。 因此,不可能執行4x1向量和4x4矩陣的矩陣乘法。
你可以做的是轉(使用矢量myvector.T
),所以你得到一個1×4矢量和繁殖與您的 4x4矩陣。
或者,您可以將右側的向量相乘。
>>> v1 = numpy.arange(1,5).reshape(1,4)
>>> v1
array([[1, 2, 3, 4]])
>>> v1.shape
(1, 4)
>>> v2 = numpy.ones((4,4))
>>> v2
array([[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.]])
>>> v2.shape
(4, 4)
>>> v3 = v1*v2
>>> v3
array([[ 1., 2., 3., 4.],
[ 1., 2., 3., 4.],
[ 1., 2., 3., 4.],
[ 1., 2., 3., 4.]])
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.