我试图在一组数据上创建一个数据平滑函数,我正在使用savitzky golay filter。为了做到这一点,我正在收集一组数据,并通过Scipy调用该函数。
但是因为我在不同的框架中循环通过一个特定的元素,所以我没有空间位置和时间位置。
dataobj.body.data[j][0][i]
持有(x,y)
,我只收集y
下面是以下循环:
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秒。 非常感谢所有的帮助者
用50%的x和y数据训练克里格模型(只是一个多项式插值),然后在整个集合x上对模型进行^y评估,怎么样? 克里格模型代码示例(使用smt模块):
如果输入数据是多维numpy数组,则可以将numpy数组的一部分传递给scipy方法,然后将生成的数组插入到原始数据对象中:
相关问题 更多 >
编程相关推荐