小编Sea*_*mer的帖子

pandas/numpy int64(python 3.6)中出现意外的32位整数溢出

让我从示例代码开始:

import numpy
from pandas import DataFrame

a = DataFrame({"nums": [2233, -23160, -43608]})

a.nums = numpy.int64(a.nums)

print(a.nums ** 2)
print((a.nums ** 2).sum())
Run Code Online (Sandbox Code Playgroud)

在我的本地计算机和其他开发人员的计算机上,这可以按预期工作并打印出来:

0       4986289
1     536385600
2    1901657664
Name: nums, dtype: int64
2443029553
Run Code Online (Sandbox Code Playgroud)

但是,在我们的生产服务器上,我们得到:

0       4986289
1     536385600
2    1901657664
Name: nums, dtype: int64
-1851937743
Run Code Online (Sandbox Code Playgroud)

这是32位整数溢出,尽管它是一个int64.

生产服务器使用python,numpy的,熊猫等相同版本这是一个64-bit Windows Server 2012OS,一切报道64位(例如python --version,sys.maxsize,plastform.architecture).

什么可能导致这个?

python numpy integer-overflow python-3.x pandas

9
推荐指数
1
解决办法
698
查看次数

标签 统计

integer-overflow ×1

numpy ×1

pandas ×1

python ×1

python-3.x ×1