Source code for pyllusion.image.rescale

# This was copied from NeuroKit2.
import numpy as np


[docs]def rescale(x, to=[0, 1], scale=None): """Rescale data. Rescale a numeric variable to a new range. Parameters ---------- x : Union[list, np.array, pd.Series] Raw data. to : list New range of values of x after rescaling. scale : list A list or tuple of two values specifying the actual range of the data. If None, the minimum and the maximum of the provided data will be used. Returns ---------- list The rescaled values. Examples ---------- >>> import pyllusion >>> >>> pyllusion.rescale([3, 1, 2, 4, 6], to=[0, 1]) #doctest: +ELLIPSIS [0.4, 0.0, 0.2, 0.6000000000000001, 1.0] """ # Return appropriate type if isinstance(x, list): x = list(_rescale(np.array(x), to=to, scale=scale)) else: x = _rescale(x, to=to, scale=scale) return x
# ============================================================================= # Internals # ============================================================================= def _rescale(x, to=[0, 1], scale=None): if scale is None: scale = [np.nanmin(x), np.nanmax(x)] return (to[1] - to[0]) / (scale[1] - scale[0]) * (x - scale[0]) + to[0]