Как я могу использовать функцию Pearsonr в Scipy, чтобы найти корреляцию и P-значение значений словаря? - PullRequest
0 голосов
/ 21 июня 2011

У меня есть код Python ниже:

a = dict.values(histodict[str(start)])
b = dict.values(histodict[str(end)])
print pearsonr(a,b)

Обе переменные a и b будут выводиться в виде списка должным образом, когда сценарий получит указание сделать это, но они не будут отвечать в функции Pearsonr в scipy.

Мне интересно, почему это не работает. Возвращенная ошибка:

Traceback (most recent call last):
File "BlackBox.py", line 32, in <module>
print corr(a,b)
File "/usr/lib/python2.6/dist-packages/scipy/stats/stats.py", line 1596, in pearsonr
mx = x.mean()
TypeError: cannot perform reduce with flexible type

И так как этот код в его текущей форме, очевидно, не будет работать, как я могу использовать функцию Pearsonr в Scipy для возврата корреляции и P-значения словарных значений?

1 Ответ

3 голосов
/ 21 июня 2011

Из вашего комментария ваши значения не являются целыми числами / числами с плавающей точкой:

a = [float(x) for x in histodict[str(start)].itervalues()]
b = [float(x) for x in histodict[str(end)].itervalues()]
print pearsonr(a,b)
...