【发布时间】:2021-08-26 01:36:10
【问题描述】:
我正在尝试对一组数据进行数据平滑函数,为此我正在使用 savitzky golay 过滤器,我正在收集一组数据并通过 Scipy 调用该函数。
但是由于我在不同框架中循环遍历特定元素,因此我没有空间局部性或时间局部性。
dataobj.body.data[j][0][i]
持有(x,y),我只收集ys。
这是以下循环:
def smooth_data(dataobj):
number_of_frames = len(dataobj.body.data)
for i in range(0, 137):
arr = []
for j in range(0, number_of_frames):
arr.append(dataobj.body.data[j][0][i][1])
newdata = scipy.signal.savgol_filter(arr, 25, 3)
for k in range(0, number_of_frames):
dataobj.body.data[k][0][i][1] = newdata[k]
return dataobj
我想让它工作得更快,现在当帧数超过 1000 时,它需要相当长的时间,比如 30 秒。 非常感谢所有的帮助者!
【问题讨论】:
标签: python loops optimization scipy smoothing