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],
        [-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]])

关于Python:用numpy将矩阵乘以向量时的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19616277/

相关文章:

python - 如何在数据框中计算每日和每周的加类时间?

python - 使 numpy 数组 JSON 可序列化

Python 类别方法

python - 在 Windows 上安装 scipy 包时出错

python - 我可以为 numpy 预先计算/预先生成伪随机数吗?

python - 高效创建 0 和 255 的棋盘图案

python - 无法阅读在线提供的 pdf 文件的特定页面的内容

python - 如何确保元组列表中的最小欧氏距离

python - 如何使用 python 请求向 Django REST API 发送 POST 请求

python - Python遍历灰度图像中的连接组件