Source code for padasip.preprocess.standardize

"""
.. versionadded:: 0.1
.. versionchanged:: 1.2.0

This function standardizes (z-score) the series according to equation

:math:`\\textbf{x}_s = \\frac{\\textbf{x} - a}{b}`

where :math:`\\textbf{x}` is time series to standardize,
:math:`a` is offset to remove and :math:`b` scale to remove

.. contents::
   :local:
   :depth: 1

See also: :ref:`preprocess-standardize_back`

Usage Explanation
********************

As simple as

.. code-block:: python

    xs = pa.standardize(x, offset=a , scale=b)

If the key arguments :code:`offset` and :code:`scale` are not provided
(example below) the mean value and standard deviation of `x` is used.

.. code-block:: python

    xs = pa.standardize(x)

Minimal Working Example
**************************

An example how to standarize (z-score) data:

.. code-block:: python

    >>> import numpy as np
    >>> import padasip as pa
    >>> x = np.random.random(1000)
    >>> x.mean()
    0.49755420774866677
    >>> x.std()
    0.29015765297767376
    >>> xs = pa.standardize(x)
    >>> xs.mean()
    1.4123424652012772e-16
    >>> xs.std()
    0.99999999999999989


Code Explanation
*****************
"""
from __future__ import division
import numpy as np

[docs]def standardize(x, offset=None, scale=None): """ This is function for standarization of input series. **Args:** * `x` : series (1 dimensional array) **Kwargs:** * `offset` : offset to remove (float). If not given, \ the mean value of `x` is used. * `scale` : scale (float). If not given, \ the standard deviation of `x` is used. **Returns:** * `xs` : standardized series """ if offset is None: offset = np.array(x).mean() else: try: offset = float(offset) except: raise ValueError('The argument offset is not None or float') if scale is None: scale = np.array(x).std() else: try: scale = float(scale) except: raise ValueError('The argument scale is not None or float') try: x = np.array(x, dtype="float64") except: raise ValueError('The argument x is not numpy array or similar.') return (x - offset) / scale