繁体   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