2017-02-22 11 views
2

我有一組數字,可以從1e-1001e-700和更低的數字。精度與指數無關。 只需提供Decimal作爲所有這些數字列的轉換器,我就可以使用Pandas加載這些數字。具有scipy.stats函數的高指數數

問題是,即使我使用Python的Decimal,我也不能使用scipy.stats.chi2.isf和類似的函數,因爲它們的C代碼明確地使用了double。 可能的解決方法是我可以使用數字的log10。這裏的問題是雖然有logsf函數,但對於chi2,它的實現僅僅是log(sf(...)),因此在sf返回0時應該返回0,它應該返回類似於1e-600的東西。而對於isf,根本沒有這樣的日誌功能。

我想知道是否有任何方法可以處理這些數字,而不必決定將所有這些函數自己寫入Decimal。

回答

0

您可以直接使用來自scipy.special(gammaln,loggamma)的伽瑪函數的日誌寫入logsf的表達式。你可以發送一個pull請求來實現卡方分佈的logsf。