Source code for sim_utils
# Module containing generally handy functions used by simulation module
import numpy as np
import bisect
import sys
import chippr
from chippr import defaults as d
[docs]def choice(weights):
"""
Function sampling discrete distribution
Parameters
----------
weights: numpy.ndarray
relative probabilities for each category
Returns
-------
index: int
chosen category
"""
cdf_vals = np.cumsum(weights) / np.sum(weights)
x = np.random.random()
index = bisect.bisect(cdf_vals, x)
return index