簡體   English   中英

矩陣-python(numpy)中的矢量乘法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM