平滑而不会丢失数组长度

时间:2017-12-11 15:18:45

标签: python arrays average smoothing continuum

我希望在没有瞬态效应和丢失原始数据数组长度的情况下平滑数据。

使用下面的代码我可以获得没有数组长度丢失的平滑,但最终会得到瞬态。

import numpy as np

def continuum(y,N):
        return np.convolve(y, np.ones((N,))/N, mode='same')

plt.figure()
plt.errorbar(x1,y1,yerr=err1,zorder=1)
cont = continuum(y1,10)
plt.plot(x1,cont,'r-',zorder=2)

enter image description here

使用以下内容,我可以在没有瞬态的情况下进行平滑,但它会减少生成的数组长度。

def continuum(x,y,N):
        contin = np.convolve(y, np.ones((N,))/N, mode='valid')
        x_new = np.linspace(x[0],x[-1],len(contin))        
        return x_new,contin

plt.figure()
plt.errorbar(x1,y1,yerr=err1,zorder=1)

enter image description here

这肯定更好但是这意味着当我进一步平滑连续减法时,由于数组长度不同,我无法从原始数据中减去它。

关于如何将两者结合起来以获得最佳平滑功能的任何想法?

0 个答案:

没有答案