我正在编写一个程序,它将数字x和y数据作为numpy数组,然后将其(数字地)整合到x的区域上。我这样做了,现在我开始怀疑精确度了。
我注意到math.fsum()
以sum()
没有 - numpy.sum
进行这些更正的方式纠正了某些错误?
如果我写sum = numpy.sum(array)
或类似的东西,结果(总和)是否准确无误?我总结了数千个数据点,这些数据点本身就是几个操作的产物,因此可能会累积小的错误。我不熟悉Python,知道当精确到很多小数位时,我应该使用一些更准确的数学模块。
答案 0 :(得分:1)
不,numpy.sum
不会执行更正math.fsum
。它使用pairwise summation,这不如math.fsum
使用的技术那么好,虽然我不确定它是如此糟糕。
答案 1 :(得分:0)
如果你想要更好的方法,那么在scipy,numpy libs中有一些数值集成实现
一些你可以应用于一组点(对): numpy.trapz
或者您可以使用插值,整合样条拟合:scipy.interpolate.UnivariateSpline.integral
如果你有一个功能:scipy.integrate