I know that this error message (ValueError: too many values to unpack (expected 4)
) appears when more variables are set to values than a function returns.
scipy.stats.linregress
returns 5 values according to the scipy documentation (http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.linregress.html).
Here is a short, reproducible example of a working call, and then a failed call, to linregress
:
What could account for difference and why is the second one poorly called?
from scipy import stats
import numpy as npif __name__ == '__main__':x = np.random.random(10)y = np.random.random(10)print(x,y)slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)'''
Code above works
Code below fails
'''X = np.asarray([[-15.93675813],[-29.15297922],[ 36.18954863],[ 37.49218733],[-48.05882945],[ -8.94145794],[ 15.30779289],[-34.70626581],[ 1.38915437],[-44.38375985],[ 7.01350208],[ 22.76274892]])Y = np.asarray( [[ 2.13431051],[ 1.17325668],[ 34.35910918],[ 36.83795516],[ 2.80896507],[ 2.12107248],[ 14.71026831],[ 2.61418439],[ 3.74017167],[ 3.73169131],[ 7.62765885],[ 22.7524283 ]])print(X,Y) # The array initialization succeeds, if both arrays are print outfor i in range(1,len(X)):slope, intercept, r_value, p_value, std_err = (stats.linregress(X[0:i,:], y = Y[0:i,:]))