我有一个向量(形状(4,1))和一个矩阵(形状(4,4))
我试图使用*运算符将它们相乘,*运算符在矩阵对象上使用时是矩阵乘法,但我得到一个值错误:
print 'Hello, world
我该如何解决这个问题?我理解如何手工完成这个,并认为numpy
会相当简单答案 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.]])
>>>