相关疑难解决方法(0)

int32的最大值是多少?

我永远记不住这个数字.我需要一个记忆规则.

integer

1383
推荐指数
30
解决办法
157万
查看次数

numpy.sum()在大型数组上给出奇怪的结果

我似乎找到了一个陷阱,使用.sum()numpy数组,但我无法找到一个解释.从本质上讲,如果我尝试总结大阵,然后我开始变得无厘头的答案,但这种情况发生默默,我不能使输出足够好,谷歌的事业感.

例如,这与预期完全一样:

a = sum(xrange(2000)) 
print('a is {}'.format(a))

b = np.arange(2000).sum()
print('b is {}'.format(b))
Run Code Online (Sandbox Code Playgroud)

为两者提供相同的输出:

a is 1999000
b is 1999000
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用:

c = sum(xrange(200000)) 
print('c is {}'.format(c))

d = np.arange(200000).sum()
print('d is {}'.format(d))
Run Code Online (Sandbox Code Playgroud)

给出以下输出:

c is 19999900000
d is -1474936480
Run Code Online (Sandbox Code Playgroud)

在更大的阵列上,可以获得积极的结果.这更加阴险,因为我可能不会发现一些不寻常的事情正在发生.例如:

e = sum(xrange(100000000))
print('e is {}'.format(e))

f = np.arange(100000000).sum()
print('f is {}'.format(f))
Run Code Online (Sandbox Code Playgroud)

给出这个:

e is 4999999950000000
f is 887459712
Run Code Online (Sandbox Code Playgroud)

这是与数据类型有关,甚至使用python float似乎解决了这个问题:

e = sum(xrange(100000000))
print('e is {}'.format(e))

f = …
Run Code Online (Sandbox Code Playgroud)

python numpy python-2.7

4
推荐指数
2
解决办法
2621
查看次数

标签 统计

integer ×1

numpy ×1

python ×1

python-2.7 ×1