ValueError:太多值无法解压 Scipy

Mar*_*k A 5 python python-2.7

我是初学者,我正在尝试使用 scipy 的回归。我收到错误:

ValueError:太多值无法解压

当我运行以下代码时:

testArray1 = [1,2,3] 
testArray2 = [2,3,4] 
slope, intercept, r_value, std_err = scipy.stats.linregress(testArray1,testArray2)
Run Code Online (Sandbox Code Playgroud)

dan*_*dar 5

寻找相同错误的答案让我来到这里,只是就我而言,我使用了更复杂的输入(屏蔽数组,前面详细介绍)。我在这里发布我的解决方案,以防有人需要它。

对于屏蔽数组SciPy:屏蔽数组),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)
Run Code Online (Sandbox Code Playgroud)

但使用 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
Run Code Online (Sandbox Code Playgroud)