我正在嘗試的計算scipy.stats.hypergeom是nan在 Python 3.9.9 中運行時給出的,但在 Python 2.7.18 中運行良好。我需要它在 Python 3 中運行它,因為我的程式的其余部分是針對那個版本的。
我已經嘗試將所有數字轉換為相同的浮點型別并對數字進行四舍五入,但似乎沒有任何東西使它適用于 Python 3。我已經包含了我的代碼和我為不同版本獲得的輸出。
代碼
from scipy.stats import hypergeom
k = 526.8499999999999
nmk = 409.823
n = 936.6729999999999
m = 30079.555399999997
N = 59416.2896
p1 = hypergeom.cdf(k, N, m, n)
p2 = hypergeom.cdf(nmk, N, m, n)
print("p1 = " str(p1) " [" str(type(p1)) "]")
print("p2 = " str(p2) " [" str(type(p2)) "]")
蟒蛇 2.7.18
p1 = 0.999720238917 [<type 'numpy.float64'>]
p2 = 9.96805760427e-06 [<type 'numpy.float64'>]
蟒蛇 3.9.9
p1 = nan [<class 'numpy.float64'>]
p2 = nan [<class 'numpy.float64'>]
編輯:scipy我使用的版本是 Python 2 的 0.13.0b1 和 Python 3 的 1.8.0。
uj5u.com熱心網友回復:
scipy從版本 1.8.0降級到 1.7.3 解決了這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/428050.html
標籤:Python python-3.x python-2.7 scipy
