【发布时间】:2017-07-13 00:20:19
【问题描述】:
我有一组可以变得非常小的数字,从 1e-100 到 1e-700 和更低。精度并不像指数那么重要。
我可以使用 Pandas 很好地加载这些数字,只需提供 Decimal 作为所有此类数字列的转换器。
问题是,即使我使用 Python 的 Decimal,我也不能使用 scipy.stats.chi2.isf 和类似的函数,因为它们的 C 代码明确使用了 double。
一个可能的解决方法是我可以使用 log10 的数字。这里的问题是,虽然有logsf 函数,但对于chi2,它只是作为log(sf(...)) 实现的,因此,当sf 返回0 时它应该返回类似1e-600 的东西时会失败。而isf则根本没有这样的日志功能。
我想知道是否有任何方法可以处理这些数字,而无需自己为 Decimal 编写所有这些函数。
【问题讨论】:
标签: python pandas scipy double precision