簡體   English   中英

Python:負數,當將矩陣乘以numpy的向量時

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM