Source code for infomeasure.estimators.utils.unique
"""Module for handling symbolic/discrete values."""
from numpy import unique, ndarray
[docs]
def unique_vals(data: ndarray) -> tuple[ndarray, ndarray, dict]:
"""
Get unique values and their counts and probability distribution.
Parameters
----------
data : ndarray
Data to get unique values from.
Returns
-------
tuple
Unique values, their counts, and probability distribution.
"""
uniq, counts = unique(data, return_counts=True)
probability = counts / len(data)
dist = dict(zip(uniq, probability))
return uniq, counts, dist