【发布时间】:2016-11-07 17:37:33
【问题描述】:
我需要计算一组数组(observed 和expected)的卡方拟合。数组大小相同,但expected 的一些元素是None,因为我不知道预期值。
我想使用scipy.stats.chisquare 来计算数据的卡方拟合。由于我的一些数据是None,我得到了错误:
TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
我试图通过仅包含不是None 的数据来解决此问题
import numpy.ma
import scipy.stats
expected = [None, 2,3,4]
observed = [1,2.2,3.3,4.4]
expMasked = numpy.ma.masked_where(expected == None, expected)
obsMasked = numpy.ma.masked_where(expected == None, observed)
chi2 = scipy.stats.chisquare(obsMasked, f_exp=expMasked)
这只是给我同样的错误。
如何将scipy.stats.chisquare 函数用于我的数据?
【问题讨论】:
-
expMasked中仍然有None。您需要改用numpy.ma.masked_where(expected == np.array(None), expected)。
标签: python arrays numpy scipy chi-squared