Source code for neurokit2.complexity.entropy_maximum
import numpy as np
[docs]
def entropy_maximum(signal):
    """**Maximum Entropy (MaxEn)**
    Provides an upper bound for the entropy of a random variable, so that the empirical entropy
    (obtained for instance with :func:`entropy_shannon`) will lie in between 0 and max. entropy.
    It can be useful to normalize the empirical entropy by the maximum entropy (which is made by
    default in some algorithms).
    Parameters
    ----------
    signal : Union[list, np.array, pd.Series]
        The signal (i.e., a time series) in the form of a vector of values.
    Returns
    --------
    maxen : float
        The maximum entropy of the signal.
    info : dict
        An empty dictionary returned for consistency with the other complexity functions.
    See Also
    --------
    entropy_shannon
    Examples
    ----------
    .. ipython:: python
      import neurokit2 as nk
      signal = [1, 1, 5, 5, 2, 8, 1]
      maxen, _ = nk.entropy_maximum(signal)
      maxen
    """
    return np.log2(len(np.unique(signal))), {}