矩阵 - python中的向量乘法(numpy)

时间:2015-07-29 14:06:02

标签: python numpy matrix-multiplication

我有一个向量(形状(4,1))和一个矩阵(形状(4,4))

我试图使用*运算符将它们相乘,*运算符在矩阵对象上使用时是矩阵乘法,但我得到一个值错误:

print 'Hello, world

我该如何解决这个问题?我理解如何手工完成这个,并认为numpy

会相当简单

3 个答案:

答案 0 :(得分:0)

您无法将4x1向量与4x4矩阵相乘。

你应该做相反的事情,将矩阵与向量相乘。或转置矢量。

答案 1 :(得分:0)

请记住,对于矩阵乘法,第一个矩阵的第二个维度必须等于第二个维度的第一个维度。因此,不可能执行4x1向量和4x4矩阵的矩阵乘法。

可以做的是转置向量(使用myvector.T),这样你得到1x4向量并将 与你的4x4矩阵相乘。

或者,您可以将右侧的矢量相乘。

答案 2 :(得分:0)

>>> 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.]])
>>>