【发布时间】:2017-07-02 16:07:23
【问题描述】:
在 python 中是否有一种简单的方法可以将高斯滤波器应用于一组点 (x,y),或者更具体地说是 (x,f(x)),这些点沿 x 轴不规则地间隔开?为了回应澄清我的意思的要求,也许更好的方式来描述我正在寻找的东西是“高斯加权平均值”,Fgwa(Xj),一系列点 (Xi,F(Xi)),其中对于提供的系列中的每个点 (Xi sub>,F(Xi)) 对所有提供的点进行总和,使得
Fgwa(Xj) = Σi [ e-[(Xj -Xi)/σ]^2 * F(Xi) ] / Σi [ exp- [(Xj-Xi)/σ]^2 ]
(注意 - 如果 (Xi,F(Xi)) 中的点恰好是均匀分布的,我相信上述定义的最终结果将与“scipy.ndimage.filters.gaussian_filter1d”所做的相同)。 有没有一种很好的、已经优化的、numpy 或 scipy 方法来做到这一点?
【问题讨论】:
-
不清楚在这种情况下您所说的“高斯滤波器”是什么意思。您能否举例说明一些输入和预期输出,或者至少是对您感兴趣的操作的描述的参考?
-
添加了澄清,对于原始问题的不明确表示抱歉。
-
如果您有大量的观察结果,那么对数据进行分箱并使用等间距的方法(例如 savitzky-golay)比计算每个点的精确局部回归要快得多。