[英]High exponent numbers with scipy.stats functions
我有一组数字,从1e-100
到1e-700
甚至更低,范围都非常小。 精度与指数无关紧要。 通过使用Decimal
作为所有此类数字列的转换器,我可以使用Pandas加载此类数字。
问题是,即使我使用Python的Decimal
,我也不能使用scipy.stats.chi2.isf
和类似的函数,因为它们的C代码明确使用double
。 一个可能的解决方法是我可以使用数字的log10。 这里的问题是,虽然有logsf
功能, chi2
它实现为刚刚log(sf(...))
并且将因此失败时sf
返回0,它应该已经返回类似1e-600
。 对于isf
,根本没有这样的日志功能。
我想知道是否有任何方法可以处理这样的数字,而不必自己为Decimal编写所有这些函数。
您可以直接使用scipy.special
(gammaln,loggamma)的伽马函数的日志直接为logsf编写表达式。 然后,您可以发送一个拉取请求,为卡方分布实现logsf。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.