You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode与Colab中Numpy矩阵求解结果不一致问题求助

问题分析与解决

原因说明

你看到的差异不是计算错误,而是浮点数数值计算的正常精度误差,以及不同环境下NumPy的默认打印格式不同:

  • 本地VSCode环境中,NumPy默认显示了浮点数运算带来的微小残留误差(-1.98254112e-17),这个值本质上是0的近似值;
  • Colab的NumPy默认打印设置会自动把这种极小的数值显示为0,所以看起来更“干净”。

解决方法

方法1:修改NumPy打印选项,抑制科学计数法与微小数值

在代码开头添加一行调整打印设置的代码,让输出格式和Colab一致:

import numpy as np
np.set_printoptions(suppress=True, precision=6)  # suppress=True将极小数显示为0,precision控制小数位数

A = [[4, 6, 2],
     [3, 4, 1],
     [2, 8, 13]]

s = [9, 7, 2]

r = np.linalg.solve(A, s)
print(r)

运行后输出会变为[ 3. -0.5 0. ]。

方法2:对结果进行四舍五入

如果只需要特定精度的结果,可以直接对求解结果做四舍五入处理,消除微小误差:

import numpy as np

A = [[4, 6, 2],
     [3, 4, 1],
     [2, 8, 13]]

s = [9, 7, 2]

r = np.round(np.linalg.solve(A, s), decimals=6)
print(r)

这会把误差值直接舍入为0,输出符合预期的结果。

方法3:确认并更新NumPy版本(可选)

虽然更新Anaconda后问题未解决,但可以检查本地NumPy版本是否过旧:

print(np.__version__)

如果版本远低于Colab的NumPy版本,可以单独更新NumPy:

conda update numpy

不过这一步不是必须的,因为核心问题是打印格式而非计算逻辑。


内容的提问来源于stack exchange,提问作者daskk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:02:12