экспоненциальная скользящая сумма в numpy/scipy?

Я ищу функцию для вычисления экспоненциальной скользящей суммы в numpy или scipy. Я хочу избежать использования циклов Python, потому что они очень медленные.

если быть точным, у меня есть две серии A[] и T[]. T[i] — временная метка значения A[i]. Я определяю период полураспада тау. Для данного времени t экспоненциальная скользящая сумма представляет собой сумму всех значений A[i], которые произошли до t, с весом exp(-(t-T[i])/tau) для каждого A[i].

Большое спасибо!


person Vendetta    schedule 08.11.2011    source источник
comment
Взгляните на pytseries.sourceforge.net/contents.html.   -  person Tarantula    schedule 08.11.2011


Ответы (2)


Взгляните на numpy.convolve. Экспоненциальная скользящая сумма является сверткой.

person Michael J. Barber    schedule 08.11.2011

Вы можете попытаться улучшить циклы Python, выполняя хорошие «практики» (например, избегая точек).

Возможно, вы можете закодировать свою функцию на C (в «библиотеку numpy») и вызвать ее из python.

person ykatchou    schedule 08.11.2011