我想复制一个类似的情节:
python - Python中数据点的平均趋势曲线-LMLPHP
(来源:brleader.com
我的意思是我有一组数据点,我想有一条曲线来显示平均趋势。
我试着在函数y=2x中加入随机噪声

  from scipy import interpolate

  x=arange(0,1,1e-3)
  noise=np.random.random(len(x))
  y=2*x+noise

然后我用Scipt函数插值数据
  xnew=arange(0,1,1e-1)
  f=interpolate.UnivariateSpline(x,y)
  g=interpolate.interp1d(x,y)
  plot(x,y,'ro',xnew,f(xnew),'-',xnew,g(xnew),'--')
  show()

但我得到的曲线几乎不像y=2*x。我希望有一个平滑的曲线来平均数据。我可以使用哪种方法/功能?

最佳答案

曲线看起来不像y=2*x的原因之一(我认为是的,但这取决于意见)是,与y的平均变化相比,您的噪声较大。如果您尝试以下方法:

noise=0.1*np.random.random(len(x))

(即使噪音更小)或
y=5*x**2+noise

(即使y中的更改变大),您将看到插值更好地跟踪数据。
您可能还想签出:
http://www.scipy.org/Cookbook/SignalSmooth

08-25 07:28