В Windows целочисленный тип по умолчанию для числовых массивов - 32-разрядный.Я могу воспроизвести проблему, передавая массивы с типом dtype np.int32
в chisquare
:
In [5]: chisquare(f_obs=np.array([2,1], dtype=np.int32), f_exp=np.array([1000000,1], dtype=np.int32))
Out[5]: Power_divergenceResult(statistic=-731.379964, pvalue=1.0)
Это ошибка.Я создал проблему для этого на сайте SciPy github: https://github.com/scipy/scipy/issues/10159
Чтобы обойти эту проблему, преобразуйте входные аргументы в массивы с типом данных numpy.int64
или numpy.float64
:
In [6]: chisquare(f_obs=np.array([2,1], dtype=np.int64), f_exp=np.array([1000000,1], dtype=np.int64))
Out[6]: Power_divergenceResult(statistic=999996.000004, pvalue=0.0)
In [7]: chisquare(f_obs=np.array([2,1], dtype=np.float64), f_exp=np.array([1000000,1], dtype=np.float64))
Out[7]: Power_divergenceResult(statistic=999996.000004, pvalue=0.0)