#### Previous topic

scipy.signal.decimate

#### Next topic

scipy.signal.resample

# scipy.signal.detrend

`scipy.signal.``detrend`(data, axis=-1, type='linear', bp=0)

  Remove linear trend along axis from data.

  Parameters:

  data : array_like

  > The input data.

  axis : int, optional

  > The axis along which to detrend the data. By default this is the last axis (-1).

  type : {‘linear’, ‘constant’}, optional

  > The type of detrending. If `type == 'linear'` (default), the result of a linear least-squares fit to data is subtracted from data. If `type == 'constant'`, only the mean of data is subtracted.

  bp : array_like of ints, optional

  > A sequence of break points. If given, an individual linear fit is performed for each part of data between two break points. Break points are specified as indices into data.

  Returns:

  ret : ndarray

  > The detrended input data.

  Examples

      >>> from scipy import signal
      >>> randgen = np.random.RandomState(9)
      >>> npoints = 1000
      >>> noise = randgen.randn(npoints)
      >>> x = 3 + 2*np.linspace(0, 1, npoints) + noise
      >>> (signal.detrend(x) - noise).max() < 0.01
      True