我有一个数据数组 Y
,其中 Y
是自变量 X
(另一个数组)的函数。
X
中的值从 0 到 360 变化,并有环绕。
Y
中的值在 -180 到 180 之间变化,也有环绕。
(也就是说,这些值是围绕圆的角度(以度为单位)。)
有谁知道Python中的任何函数(在numpy
、scipy
等中)能够对我的Y
值进行低通滤波作为 X
的函数?
以防万一这令人困惑,下面是示例数据图:
最佳答案
假设你从
开始import numpy as np
x = np.linspace(0, 360, 360)
y = 5 * np.sin(x / 90. * 3.14) + np.random.randn(360)
plot(x, y, '+');
要执行循环卷积,您可以执行以下操作:
yy = np.concatenate((y, y))
smoothed = np.convolve(np.array([1] * 5), yy)[5: len(x) + 5]
这在每个点都使用前 5 个点(含)的循环平均值。当然,还有其他方法可以做到这一点。
>>> plot(x, smoothed)
关于python - 平滑循环数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36074074/