Как применить scipy.signal.filtfilt () к неполным данным - PullRequest
0 голосов
/ 12 ноября 2018

Я хочу построить неполные данные (некоторые значения - Нет). Кроме того, я хочу применить функцию масла к набору данных и показать оба графика, неполные и сглаженные. Кажется, что функция фильтра не работает с неполными данными.

Файл данных: data.csv

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from scipy import signal

data = np.genfromtxt('data.csv', delimiter = ',')
df = pd.DataFrame(data)
df.set_index(0, inplace = True)

b, a = signal.butter(5, 0.1)
y = signal.filtfilt(b,a, df[1].values)
df2 = pd.DataFrame(y, index=df.index)

df.plot()
df2.plot()

plt.show()

enter image description here enter image description here

1 Ответ

0 голосов
/ 12 ноября 2018

На странице документации ничего не сказано о NaN. Возможно, вам придется сначала удалить NaN из списка значений. Вот способ сделать это с помощью функции Numpy isnan:

y = signal.filtfilt(b, a, df[1].values[~np.isnan(df[1].values)])
df2 = pd.DataFrame(y, index=df.index[~np.isnan(df[1].values)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...