寻找相同错误的答案让我来到这里,只是在我的情况下,我使用了更复杂的输入(屏蔽数组,前面详述)。我在这里发布我的解决方案,以防有人需要。
在 Masked Arrays (SciPy: Masked arrays) 的情况下,SciPy 为它们指定了一组统计函数:scipy.stats.mstats。
例如,当被 scipy.stats.linregress 调用时,几个 数组列表 会产生相同的错误:
from scipy import stats
x = [array([4.04]), array([4.38])]
y = [array([3.60]), array([4.03])]
slope, intercept, r_value, std_err = scipy.stats.linregress(x,y)
Traceback (most recent call last):
File "code.py", line 4, in <module>
slope, intercept, r, prob, sterrest = stats.linregress(x,y)
File ".../anaconda/lib/python3.4/site-packages/scipy/stats/_stats_mstats_common.py", line 79, in linregress
ssxm, ssxym, ssyxm, ssym = np.cov(x, y, bias=1).flat
ValueError: too many values to unpack (expected 4)
但是使用 stats.mstats.linregress() 可以解决这个问题:
from scipy import stats
x = [array([4.04]), array([4.38])]
y = [array([3.60]), array([4.03])]
slope, intercept, r_value, std_err = scipy.stats.mstats.linregress(x,y)
print(r**2)
>>> 1.0