Python 用numpy实现矩阵乘法

Python 用numpy实现矩阵乘法,python,matrix,numpy,Python,Matrix,Numpy,我有两个矩阵 a = matrix(((1.4) ,(2.5) ,(1.96),(6.25),(12.25)) 及 当我把这些矩阵相乘时 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-i

我有两个矩阵

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

当我把这些矩阵相乘时

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行,在
文件“/usr/local/lib/python2.6/dist packages/numpy-1.7.0-py2.6-linux-i686.egg/numpy/matrixlib/defmatrix.py”,第330行,在__
返回N.dot(自身、asmatrix(其他))
ValueError:矩阵未对齐

请帮我解决这个问题

你的矩阵的形状不对,不能将它们相乘。我想你可能想把
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


请注意,逗号是元组的组成部分。括号只是为了避免语法上的歧义。在上一个示例中,最内部的括号组不起任何作用,会被python的解析器删除。

您的矩阵与它们相乘的形状是错误的。我想你可能想把
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

请注意,逗号是元组的组成部分。括号只是为了避免语法上的歧义。在最后一个示例中,最内部的括号组不起任何作用,并由python的解析器删除