Рассмотрим, какие в Python имеются инструменты создания выборки по заданному дискретному распределению. Она окажется вам полезной, например, для заполнения пропусков в некоторой колонке, не нарушая исходного распределения. Зададим имитационный набор данных x:
Вероятности появления 4 заданных значений от 0 до 3 следующие:
Для нашей цели можно использовать функцию choice из модуля np.random, которая при получении списка значений (параметр a) и их вероятностей (p) возвращает набор величин размером (size) с учетом распределения:
Как видим, вероятности значений из нового набора близки исходным.
Еще более общим инструментом является создание объекта дискретного распределения функцией rv_discrete из модуля scipy.stats:
Воспользовавшись его методом rvs, можно получить набор значений из этого распределения:
Как видим, вероятности получившегося набора тоже близки к исходным.