Ошибка находится в строке (которую вы не показываете):
ssxm, ssxym, ssyxm, ssym = np.cov(x, y, bias=1).flat
Слева у вас 4 переменные. Ошибка говорит, что np.cov(....).flat
производит более 4 значений (flat
- это numpy.flatiter
)
Что дает np.cov(...)
? По документам? По вашим собственным тестам кода? Это то, что вам следует проверить!
Если этот вызов cov
не является частью вашего кода, вам нужно показать всю трассировку.
= ==
Глядя на функции, я вижу, что np.cov(x,y)
вызывается scipy.stats.linregress(x, y)
, который, в свою очередь, вызывается через rsquared(i,j)
Сообщает нам о i,j
, которым вы являетесь прохождение.
Этот блок кода выглядит подозрительно.
Почему добавление в пустой список? Вы смотрели list1
после этого? Правильно ли выглядит i,j
, которое вы отправили на rquared
?
list1=[]
list2=[]
list1.append((LP_obs,LP_obs_1))
list2.append((LP_sim,LP_sim_1))
for i in list1:
for j in list2:
R=rsquared(i,j)
q=[]
q.append(R)
print(q)
А что с добавлением q
, которое находится вне циклов for? Вы делаете это добавление только один раз, используя last R
. Вы не накапливаете эти R
значения.