我有一些时间序列数据,其中时间间隔不均匀。通过将每个x,y点与一条直线连接起来,我正在构建一个非常简单的趋势线。然后,我想计算一系列新的一致x值的y截距(具体来说,我需要以一秒的间隔推断y值)。当前,这是我的方法(我创建了示例X,Y数组来说明这一点):
original_x=(np.arange(10)**2)*0.1
y=np.random.uniform(-10,10,10)
new_x=np.arange(10)[1:]
grads=(y[:-1]-y[1:])/(original_x[:-1]-original_x[1:])
intercepts=np.zeros(new_x.shape[0])
placeholder=0
for i in range(new_x.shape[0]):
for h in range(placeholder,original_x.shape[0],1):
if original_x[h]>=new_x[i]:
intercepts[i]=y[h]+((original_x[h]-new_x[i])*(-grads[h-1]))
placeholder=h
break
我正在使用“占位符”变量来缩短循环,但感觉可能存在一种向量化该方式并完全避免循环的方法。但是,我正在空白。这是一个非常大的数据集,所以我需要它尽可能的光滑。有什么想法吗?