Spec-Zone.ru › NumPy 1.17

Устаревшее генерирование случайных чисел

Класс RandomState предоставляет доступ к устаревшим генераторам. Этот генератор считается замороженным и больше не будет улучшаться. Он гарантирует производство тех же значений, что и в финальном релизе NumPy v1.16. Все они зависят от нормальных чисел Бокса—Мюллера или обратных CDF экспоненциальных или гамма-распределений. Этот класс следует использовать только в том случае, если крайне необходимо получить случайные числа, идентичные тем, что генерировались предыдущими версиями NumPy.

RandomState добавляет дополнительную информацию в состояние, которая требуется при использовании нормальных чисел Бокса—Мюллера, так как они генерируются парами. Важно использовать get_state, а не базовые генераторы бит state, при доступе к состоянию, чтобы сохранять эти дополнительные значения.

Хотя мы предоставляем MT19937 BitGenerator для использования независимо от RandomState, обратите внимание, что его начальное значение по умолчанию использует SeedSequence вместо алгоритма устаревшего посева. RandomState будет использовать устаревший алгоритм инициализации. Методы для использования устаревшего алгоритма инициализации в настоящее время являются закрытыми, так как основная причина их использования — реализация RandomState. Однако можно сбросить состояние MT19937 с помощью состояния RandomState:

from numpy.random import MT19937
from numpy.random import RandomState

rs = RandomState(12345)
mt19937 = MT19937()
mt19937.state = rs.get_state()
rs2 = RandomState(mt19937)

# Same output
rs.standard_normal()
rs2.standard_normal()

rs.random()
rs2.random()

rs.standard_exponential()
rs2.standard_exponential()
class numpy.random.mtrand.RandomState(seed=None)

Контейнер для медленного псевдослучайного генератора чисел Мерсенна-Твистера. Вместо этого рассмотрите использование другого BitGenerator с контейнером Generator.

RandomState и Generator предоставляют множество методов для генерации случайных чисел, взятых из различных распределений вероятностей. В дополнение к аргументам, специфичным для распределений, каждый метод принимает ключевой аргумент size, который по умолчанию равен None. Если size равно None, то генерируется и возвращается одно значение. Если size является целым числом, то возвращается одномерный массив, заполненный сгенерированными значениями. Если size является кортежем, то возвращается массив с заданной формой, заполненный значениями.

Гарантия совместимости

Фиксированный генератор битов с фиксированным значением seed и фиксированной серией вызовов методов ‘RandomState’ с одинаковыми параметрами всегда будет генерировать одинаковые результаты с точностью до округления, за исключением случаев, когда значения были неверными. RandomState фактически заморожен и будет получать обновления только в случае необходимости, вызванной изменениями внутренних компонентов Numpy. Более существенные изменения, включая улучшения алгоритмов, сохранены для Generator.

Параметры:
seed : {None, int, array_like, BitGenerator}, optional

Значение seed, используемое для инициализации псевдогенератора случайных чисел, или экземпляр BitGenerator. Если целое число или массив, используется как seed для MT19937 BitGenerator. Значения могут быть любым целым числом от 0 до 2**32 - 1 включительно, массивом (или другой последовательностью) таких целых чисел, или None (по умолчанию). Если seed равно None, то MT19937 BitGenerator инициализируется путем чтения данных из /dev/urandom (или аналога для Windows), если доступно, или из seed, полученного от часов, в противном случае.

См. также

Generator, mt19937.MT19937, Bit_Generators

Примечания

Модуль Python stdlib “random” также содержит псевдослучайный генератор чисел Мерсенна-Твистера с рядом методов, аналогичных тем, что доступны в RandomState. RandomState, помимо того, что он поддерживает NumPy, имеет преимущество в том, что предоставляет гораздо больше распределений вероятностей на выбор.

Инициализация и состояние

get_state() Возвращает кортеж, представляющий внутреннее состояние генератора.
set_state(state) Устанавливает внутреннее состояние генератора из кортежа.
seed(self[, seed]) Переинициализирует устаревший генератор MT19937 BitGenerator

Простые данные случайных чисел

rand(d0, d1, …, dn) Случайные значения в заданной форме.
randn(d0, d1, …, dn) Возвращает выборку (или выборки) из распределения «стандартного нормального» распределения.
randint(low[, high, size, dtype]) Возвращает случайные целые числа от low (включительно) до high (исключительно).
random_integers(low[, high, size]) Случайные целые числа типа np.int между low и high, включительно.
random_sample([size]) Возвращает случайные числа с плавающей точкой в полуоткрытом интервале [0.0, 1.0).
choice(a[, size, replace, p]) Генерирует случайную выборку из заданного одномерного массива
bytes(length) Возвращает случайные байты.

Перестановки

shuffle(x) Изменяет последовательность на месте, перемешивая ее содержимое.
permutation(x) Случайным образом переупорядочивает последовательность или возвращает переупорядоченный диапазон.

Распределения

beta(a, b[, size]) Генерировать выборки из бета-распределения.
binomial(n, p[, size]) Генерировать выборки из биномиального распределения.
chisquare(df[, size]) Генерировать выборки из хи-квадрат распределения.
dirichlet(alpha[, size]) Генерировать выборки из распределения Дирихле.
exponential([scale, size]) Генерировать выборки из экспоненциального распределения.
f(dfnum, dfden[, size]) Генерировать выборки из F-распределения.
gamma(shape[, scale, size]) Генерировать выборки из гамма-распределения.
geometric(p[, size]) Генерировать выборки из геометрического распределения.
gumbel([loc, scale, size]) Генерировать выборки из распределения Гумбеля.
hypergeometric(ngood, nbad, nsample[, size]) Генерировать выборки из гипергеометрического распределения.
laplace([loc, scale, size]) Генерировать выборки из лапласовского (или двойного экспоненциального) распределения со заданной локацией (или средним) и масштабом (убыванием).
logistic([loc, scale, size]) Генерировать выборки из логистического распределения.
lognormal([mean, sigma, size]) Генерировать выборки из логнормального распределения.
logseries(p[, size]) Генерировать выборки из логарифмического ряда распределения.
multinomial(n, pvals[, size]) Генерировать выборки из многономиального распределения.
multivariate_normal(mean, cov[, size, …]) Генерировать случайные выборки из многомерного нормального распределения.
negative_binomial(n, p[, size]) Генерировать выборки из отрицательного биномиального распределения.
noncentral_chisquare(df, nonc[, size]) Генерировать выборки из нецентрального хи-квадрат распределения.
noncentral_f(dfnum, dfden, nonc[, size]) Генерировать выборки из нецентрального F-распределения.
normal([loc, scale, size]) Генерировать случайные выборки из нормального (гауссовского) распределения.
pareto(a[, size]) Генерировать выборки из распределения Парето II или Ломакса со заданным параметром формы.
poisson([lam, size]) Генерировать выборки из пуассоновского распределения.
power(a[, size]) Генерирует выборки в интервале [0, 1] из степенного распределения с положительным показателем a - 1.
rayleigh([scale, size]) Генерировать выборки из распределения Рэлея.
standard_cauchy([size]) Генерировать выборки из стандартного распределения Коши с модой = 0.
standard_exponential([size]) Генерировать выборки из стандартного экспоненциального распределения.
standard_gamma(shape[, size]) Генерировать выборки из стандартного гамма-распределения.
standard_normal([size]) Генерировать выборки из стандартного нормального распределения (среднее=0, стандартное отклонение=1).
standard_t(df[, size]) Генерировать выборки из стандартного t-распределения Стьюдента со df степенями свободы.
triangular(left, mode, right[, size]) Генерировать выборки из треугольного распределения на интервале [left, right].
uniform([low, high, size]) Генерировать выборки из равномерного распределения.
vonmises(mu, kappa[, size]) Генерировать выборки из распределения фон Миса.
wald(mean, scale[, size]) Генерировать выборки из распределения Вальда, или обратного гауссовского распределения.
weibull(a[, size]) Генерировать выборки из распределения Вейбулла.
zipf(a[, size]) Генерировать выборки из распределения Цпфа.

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/random/legacy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API