如注释中所述,通过对数百万个等号的数字求和会产生浮点取整问题。解决此问题的一种可能方法是在组合数组中混合正数和负数,以便在求和时得到的任何中间结果始终大致保持在相同的数量级内:
neg = -100*numpy.random.rand(20e6)pos = -negcombined = numpy.zeros(len(neg)+len(pos))combined[::2] = negcombined[1::2] = pos
现在
combined.sum()应该几乎为零。
也许这种方法也将有助于提高标准偏差的计算精度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)