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

numpy 1.21.3版本np.sum求和结果错误是什么原因,如何修复

Numpy求和结果错误问题解答

问题根因

这不是numpy版本bug,属于整型溢出导致的计算异常。
numpy创建数组未指定dtype参数时,会根据输入数值和运行环境自动匹配整型精度:

  • 32位有符号整型(int32)最大可存储数值为2147483647,你本次计算的正确求和结果4831444992远超过该上限,累加过程中发生数值回绕,最终输出错误结果536477696
  • Coursera运行环境默认给数组匹配的是64位有符号整型(int64),最大可存储9223372036854775807,完全可以容纳本次求和结果,因此输出正常

修复方案

两种方案任选其一即可:

  • 创建数组时手动指定高精度整型
import numpy as np
a = np.array([75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
              75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
              75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
              75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
              75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
              75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
              75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328,
              75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328, 75491328], dtype=np.int64)
print(np.sum(a))
  • 调用求和方法时指定累加精度
# 不需要修改原数组定义,求和时指定dtype即可
print(np.sum(a, dtype=np.int64))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:15:08