一种解决不同时间间隔分离的数据点的噪声过滤的方法是使用滑动窗口平均。下面是一个示例代码:
import numpy as np
def filter_noise(data, window_size):
filtered_data = []
for i in range(len(data)):
if i < window_size:
# 对于前window_size个数据点,直接保留原值
filtered_data.append(data[i])
else:
# 对于后续数据点,计算滑动窗口内数据的平均值
window_average = np.mean(data[i-window_size:i])
filtered_data.append(window_average)
return filtered_data
# 示例数据
data = [5, 3, 1, 10, 12, 8, 6, 7, 9, 2]
window_size = 3
filtered_data = filter_noise(data, window_size)
print(filtered_data)
运行以上代码,输出结果为 [5, 3, 3, 4.666666666666667, 7.666666666666667, 10.0, 8.666666666666666, 7.0, 6.0, 6.0]
。可以看到,在滑动窗口大小为3的情况下,噪声被平滑地过滤了。