Python:当矩阵乘以带有numpy的向量时,为负数

Python:当矩阵乘以带有numpy的向量时,为负数,python,numpy,Python,Numpy,需要将矩阵乘以向量。我试过: A = numpy.matrix([[36, 34, 26], [18, 44, 1], [11, 31, 41]]) X1 = numpy.matrix([[46231154], [26619349], [37498603]]) 为什么是负数?数字越小越好,例如: >>>A*X1 matrix([[ -750624208], [ 2040910731], [-142378

需要将矩阵乘以向量。我试过:

A = numpy.matrix([[36, 34, 26],
        [18, 44,  1],
        [11, 31, 41]])

X1 = numpy.matrix([[46231154], [26619349], [37498603]])
为什么是负数?数字越小越好,例如:

>>>A*X1
   matrix([[ -750624208],
        [ 2040910731],
        [-1423782060]])
>>> numpy.dot(A,X1)
   matrix([[ -750624208],
        [ 2040910731],
        [-1423782060]])

我相信您使用的是32位系统,并且您看到的是整数溢出。尝试使用关键字参数定义矩阵和向量
dtype=np.int64
,看看是否得到更有意义的答案

在我的64位机器上,我有以下输出

A = numpy.matrix([[36, 34, 26],
        [18, 44,  1],
        [11, 31, 41]])
X1 = numpy.matrix([[8], [6], [6]])

>>>A*X1
matrix([[58],
        [38],
        [40]])

我相信您使用的是32位系统,并且您看到的是整数溢出。尝试使用关键字参数定义矩阵和向量
dtype=np.int64
,看看是否得到更有意义的答案

在我的64位机器上,我有以下输出

A = numpy.matrix([[36, 34, 26],
        [18, 44,  1],
        [11, 31, 41]])
X1 = numpy.matrix([[8], [6], [6]])

>>>A*X1
matrix([[58],
        [38],
        [40]])

我同意罗伯特的观点。这是我机器上64位python的结果:>>>>A=numpy.matrix([[36,34,26],[18,44,1],[11,31,41])>>>>>>X1=numpy.matrix([[46231154],[26619349],[37498603])>>AX1 matrix([[3544343088],[2040910731],[2871185236])>>numpy这里是32位Python2.7-32的结果:>>>>A=numpy.matrix([[36,34,26],…[18,44,1],…[11,31,41])>>>>>>>>X1=numpy.matrix([46231154],[26619349],[37498603])>>AX1 matrix([[750624208],[2040910731],-1423782060])>>numpy.dThank你,罗伯特,dtype=np现在可以了。我同意罗伯特的看法。这是我机器上64位python的结果:>>>>A=numpy.matrix([[36,34,26],[18,44,1],[11,31,41])>>>>>>X1=numpy.matrix([[46231154],[26619349],[37498603])>>AX1 matrix([[3544343088],[2040910731],[2871185236])>>numpy这里是32位Python2.7-32的结果:>>>>A=numpy.matrix([[36,34,26],…[18,44,1],…[11,31,41])>>>>>>>>X1=numpy.matrix([46231154],[26619349],[37498603])>>AX1 matrix([[750624208],[2040910731],-1423782060])>>numpy.dThank你,罗伯特,dtype=np.int64现在可以了。