让我们假设我们有一个可能大约给出的数据集
import numpy as np
x = np.linspace(0,2*np.pi,100)
y = np.sin(x) + np.random.random(100) * 0.2
Run Code Online (Sandbox Code Playgroud)
因此,我们有20%的数据集变化.我的第一个想法是使用scipy的单变量函数函数,但问题是这不会很好地考虑小噪声.如果你考虑频率,背景远小于信号,所以只有截止的样条可能是一个想法,但这将涉及来回傅里叶变换,这可能导致不良行为.另一种方式是移动平均线,但这也需要正确选择延迟.
任何提示/书籍或链接如何解决这个问题?

是否有一个scipy函数或numpy函数或模块用于python,在给定特定窗口的情况下计算一维数组的运行平均值?
我的数据由一系列时间组成,每秒有10个数据点,每个时间对应一个强度值数组.所以,举一个例子,让我说我有:
times = np.arange(0,100,0.1)
intensities = np.random.rand(len(times))
Run Code Online (Sandbox Code Playgroud)
我想看看如果我使用更长的平均时间,数据会是什么样子,所以我想创建一些箱子,例如1秒,5秒和10秒,并平均这些新箱子中的强度值.numpy中最好的方法是什么?(或者其他python包,但我假设numpy/scipy对我有用.)我可以使用for循环,但我希望有更好的方法.谢谢!