python 处理数据 一次线性拟合_在Python中对1D数据执行移动线性拟合

好的..我有一个似乎是一个解决方案..不是一个答案,但是一种做出移动,多点差异的方法......我测试了这个,结果看起来非常类似于一个移动回归...我使用了1D sobel滤波器(斜率从-1到1与数据卷积):

def KDP(phidp, dx, fitlen):

kdp=np.zeros(phidp.shape, dtype=float)

myshape=kdp.shape

for swn in range(myshape[0]):

#print "Sweep ", swn+1

for rayn in range(myshape[1]):

#print "ray ", rayn+1

kdp[swn, rayn, :]=sobel(phidp[swn, rayn,:], window_len=fitlen)/dx

return kdp

def sobel(x,window_len=11):

"""Sobel differential filter for calculating KDP

output:

differential signal (Unscaled for gate spacing

example:

"""

s=np.r_[x[window_len-1:0:-1],x,x[-1:-window_len:-1]]

#print(len(s))

w=2.0*np.arange(window_len)/(window_len-1.0) -1.0

#print w

w=w/(abs(w).sum())

y=np.convolve(w,s,mode='valid')

return -1.0*y[window_len/2:len(x)+window_len/2]/(window_len/3.0)

这样跑得快!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值