我有一个一维数据数组,想要提取空间变化。我希望将标准方法python化,即对数据执行移动线性回归并保存梯度...
def nssl_kdp(phidp, distance, fitlen):
kdp=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
small=[polyfit(distance[a:a+2*fitlen], phidp[swn, rayn, a:a+2*fitlen],1)[0] for a in xrange(myshape[2]-2*fitlen)]
kdp[swn, rayn, :]=array((list(itertools.chain(*[fitlen*[small[0]], small, fitlen*[small[-1]]]))))
return kdp
这个方法可以运行,但是速度慢...... 我需要执行17*360次...
我想在[for in arange]这一行中的迭代器中出现了开销... 是否有在numpy/scipy中实现移动拟合的方法?