0

У меня есть временные ряды в лог-файл, имеющий следующий вид (метка, значение):Простой Python медианный фильтр для временных рядов

1433787443, -60 1433787450, -65 1433787470, -57 1433787483, -70

есть ли доступный питон код/​​библиотека, которая принимает в качестве входных файл журнала и размер окна, примените срединный фильтр к временному ряду для удаления шума и выбросов и выводит отфильтрованный сигнал в новый файл?

+0

Вы можете использовать scipy.ndimage.filters.median_filter, но вам придется обрабатывать файл IO самостоятельно (например, считывать данные с nump.loadtxt). – Alan

+0

Было ли решение работать? – jojek

+0

На самом деле я не знаком с numpy, поэтому я не смог его реализовать, но я нашел простой открытый код на github. В любом случае, спасибо. –

ответ

0
  1. Загрузить данные любым удобным вам способом. Я вижу, что ваш файл можно рассматривать как формат csv, поэтому вы можете использовать функцию numpy.genfromtxt('file.csv', delimiter=',').

  2. Используйте функцию scipy для медианной фильтрации: scipy.signal.medfilt(data, window_len). Имейте в виду, что длина окна должна быть нечетным числом.

  3. Сохраните результаты в файл. Вы можете сделать это, например, используя функцию numpy.savetxt('out.csv', data, delimiter=',').

Смежные вопросы