矩阵乘法使用numpy

时间:2013-04-02 13:44:08

标签: python matrix numpy

我有两个矩阵

a = matrix(((1.4) ,(2.5) ,(1.96),(6.25),(12.25))

b = matrix(((1 ,1,1,1,1),(2,2,2,2,2)))

当我乘以这些矩阵时

product = b*a

我收到错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/dist-packages/numpy-1.7.0-py2.6-linux-i686.egg/numpy/matrixlib/defmatrix.py", line 330, in __mul__
    return N.dot(self, asmatrix(other))
ValueError: matrices are not aligned

请帮我解决这个问题

1 个答案:

答案 0 :(得分:4)

你的矩阵是错误的形状来乘以它们。我想你可能想把a定义为:

a = matrix(((1.4,),(2.5,),(1.96,),(6.25,),(12.25,)))

与以下内容相同:

a = matrix((1.4,2.5,1.96,6.25,12.25)).T

a = matrix(((1.4),(2.5),(1.96),(6.25),(12.25))).T

请注意,逗号是构成元组的原因。括号仅用于避免语法中的歧义。在最后一个示例中,括号中最内部的组不执行任何操作,并由python的解析器删除。