Python 具有nan值的下采样信号

Python 具有nan值的下采样信号,python,numpy,scipy,signal-processing,Python,Numpy,Scipy,Signal Processing,我正在尝试使用以下方法减少时间序列数据的采样。我的数据具有NaN值,因此结果是一个仅包含NaN值的数组。我认为这实际上是算法在抽取数据之前应用的低通滤波器的结果 如何正确处理NaN值?我考虑过丢弃NaN值,但我需要每个时间步的一些数据。我倾向于使用最接近的非NaN值的平均值,尽管我不知道这种天真的方法是否会产生负面影响。是否有一个选项可以忽略它们,类似于?您可以始终使用掩码过滤数据,即数据[~np.isnan(数据)]添加代表性样本数据和预期输出?如果检查源,则scipy.decimate内部使

我正在尝试使用以下方法减少时间序列数据的采样。我的数据具有NaN值,因此结果是一个仅包含NaN值的数组。我认为这实际上是算法在抽取数据之前应用的低通滤波器的结果


如何正确处理NaN值?我考虑过丢弃NaN值,但我需要每个时间步的一些数据。我倾向于使用最接近的非NaN值的平均值,尽管我不知道这种天真的方法是否会产生负面影响。是否有一个选项可以忽略它们,类似于?

您可以始终使用掩码过滤数据,即
数据[~np.isnan(数据)]
添加代表性样本数据和预期输出?如果检查源,则
scipy.decimate
内部使用的任何过滤函数都不可用(取决于阵列尺寸和指定的
ftype
)支持屏蔽NaN。我认为这也是一项相当大的工作,因为您需要根据窗口函数和邻近区域中一个或多个NaN的相对位置来更正NaN附近的每个值。因此,是的,如果您想在下采样之前进行过滤,我想您需要用一些填充值替换NaN取决于最接近的非NaN。我认为值得注意的是,如果下采样因子较大,低通滤波器实际上不会起多大作用,因此您可以重新塑造,然后在新维度上应用
np.nanmean