在python中有一种简单的方法可以将高斯滤波器应用于一组点(x,y),或者更具体地说(x,f(x)),这些点不是沿着x轴有规律地间隔开的吗?为了回应澄清我的意思,可能更好的方式来描述我正在寻找的是“高斯加权平均值”,F gwa (X j < / sub>),在一系列点(X i ,F(X i ))中,对于所提供的序列中的每个点(X i ,F(X i ))总和基本上取自所有提供的点,以便
F gwa (X j )=Σ i [e - [(X j -X i )/σ] ^ 2 * F(X i )] /Σ i [exp - [(X j -X i )/σ] ^ 2 ]
(注意 - 如果(X i ,F(X i )中的点碰巧均匀分布,我相信上面定义的最终结果将与“scipy.ndimage.filters.gaussian_filter1d”的内容相同。 有没有一个很好的,已经优化的,numpy或scipy方法来做到这一点?
答案 0 :(得分:1)
这看起来像Nadaraya-Watson Kernel Regression,并且statsmodels package中有一个可用的python实现。
您可以使用pandas rolling window执行类似的内核平滑操作。