[英]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.