Как я могу генерировать случайные числа в Python?

Существуют ли встроенные библиотеки в Python или Numpy для генерации случайных чисел на основе различных распространенных распределений, таких как:

  • Normal
  • Пуассона
  • Экспоненциальный
  • Бернулли

И другие?

Существуют ли такие библиотеки с многовариантными дистрибутивами?

Ответы

Ответ 1

#!/usr/bin/env python
from scipy.stats import bernoulli,poisson,norm,expon

bernoulli, poisson, norm, expon и многие другие документированы здесь

print(norm.rvs(size=30))
print(bernoulli.rvs(.3,size=30))
print(poisson.rvs(1,2,size=30))
print(expon.rvs(5,size=30))

Все дистрибутивы, определенные в scipy.stats, имеют общий интерфейс с pdf, cdf, rvs (случайные вариации). Подробнее здесь.

Ответ 2

Модуль random имеет множество функций для генерации случайных чисел во многом. Не уверен, что он имеет многовариантность.

Numpy.random будет следующим местом для просмотра.