2015-12-19 2 views
1

У меня есть список кортежей, которые хранят значения пары в Python, например: [(0.2324,4), (0.8742,2), (0.11123,5) ....] Мне нужно рассчитать корреляцию между парными значениями и общей корреляцией для этого списка. Я знаю о Scipy и Numpy, но я не нашел там никакой функции, чтобы приспособить меня.Как вычислить корреляцию из списка кортежей - каждый кортеж имеет пары значений

Любые идеи?

Благодаря

+0

Искал правильно на 'SO' - http://stackoverflow.com/search?q=%5Bnumpy%5D+correlation? – Divakar

+0

Да, видели большинство из них. но все они говорят о 2 массивах. У меня есть 1 список парных кортежей. Я хотел знать, есть ли способ сделать это, не преобразовывая список кортежей в 2 массива. –

+0

* «Я хотел знать, есть ли способ сделать это, не преобразовывая список кортежей в 2 массива». * Почему? Это тривиальный лайнер. Любому быстрому векторизованному решению потребуется преобразовать данные в массив в какой-то момент. Вам придется делать все это с помощью медленных петель Python, если вы абсолютно настаиваете на использовании списка кортежей. –

ответ

0

Хей там,

я столкнулся с теми же трудностями, и в конечном итоге делает это:

from pyspark.mllib.stat import Statistics 
x = result_rdd.map(lambda x: x[0]) 
y = result_rdd.map(lambda x: x[1]) 
Statistics.corr(x, y) 

не очень эффективным, но это делает работу.