[英]Python: negative numbers, when multiplying a matrix by a vector with numpy
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]])
為什么是負數? 可以使用較小的數字,例如:
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位計算機上,我有以下輸出
In [1]: import numpy
In [2]: A = numpy.matrix([[36, 34, 26],
...: [18, 44, 1],
...: [11, 31, 41]])
In [3]:
In [3]: X1 = numpy.matrix([[46231154], [26619349], [37498603]])
In [4]: A*X1
Out[4]:
matrix([[3544343088],
[2040910731],
[2871185236]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.