具体来说,pandas
和numpy
中的这些累积产品功能是否以强大的方式实现,以便在将大量小数字相乘时处理下溢?例如,他们是否使用log-sum-exp技巧?
感谢。
答案 0 :(得分:1)
不幸的是,没有。 @ warren-weckesser的评论显示这不起作用。
np.array([1e-5, 1e-30, 1e-100, 1e-200, 1e50, 1e150]).cumprod()
# returns
array([1.0e-005, 1.0e-035, 1.0e-135, 0.0e+000, 0.0e+000, 0.0e+000])
原因是numpy浮点支持最小正值2 ** - 1022,或约2.225e-308。一旦你的计算小于那个,它就会降到零,这就是我们在上面的输出中看到的。大熊猫也是如此。