Spec-Zone.ru › NumPy 1.20

Запись случайных чисел (Legacy Random Generation)

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

RandomState добавляет дополнительную информацию в состояние, которая необходима при использовании распределения нормального закона Бокса-Мюллера, так как эти значения генерируются парами. Важно использовать 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.RandomState(seed=None)

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

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

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

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

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

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

См. также

Generator
MT19937
numpy.random.BitGenerator

Примечания

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

Задавание начального значения и состояние

get_state()

Возвращает кортеж, представляющий внутреннее состояние генератора.

set_state(state)

Устанавливает внутреннее состояние генератора из кортежа.

seed(self[, seed])

Перезадает начальное значение для BitGenerator MT19937

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

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])

Генерация выборок из стандартного распределения Стьюдента с 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])

Генерация выборок из распределения Зыпфа.

Функции в numpy.random

Многие из методов RandomState выше экспортированы как функции в numpy.random. Это использование не рекомендуется, так как оно реализовано через глобальный экземпляр RandomState, что нежелательно по двум причинам:

  • Использование глобального состояния означает, что результаты могут меняться по мере изменения кода.
  • Используется RandomState, а не более современный Generator.

По соображениям обратной совместимости с предыдущими версиями это изменить нельзя. См. Быстрый старт.

beta(a, b[, size])

Генерировать выборки из бета-распределения.

binomial(n, p[, size])

Генерировать выборки из биномиального распределения.

bytes(length)

Возвращает случайные байты.

chisquare(df[, size])

Генерировать выборки из хи-квадрат распределения.

choice(a[, size, replace, p])

Генерирует случайную выборку из заданного одномерного массива

dirichlet(alpha[, size])

Генерировать выборки из дирихле-распределения.

exponential([scale, size])

Генерировать выборки из экспоненциального распределения.

f(dfnum, dfden[, size])

Генерировать выборки из F-распределения.

gamma(shape[, scale, size])

Генерировать выборки из гамма-распределения.

geometric(p[, size])

Генерировать выборки из геометрического распределения.

get_state()

Возвращает кортеж, представляющий внутреннее состояние генератора.

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 или Ломакс с заданной формой.

permutation(x)

Случайным образом переупорядочить последовательность или вернуть переупорядоченный диапазон.

poisson([lam, size])

Генерировать выборки из пуассоновского распределения.

power(a[, size])

Генерирует выборки в [0, 1] из распределения степени с положительным показателем a - 1.

rand(d0, d1, …, dn)

Случайные значения в заданной форме.

randint(low[, high, size, dtype])

Возвращает случайные целые числа от low (включительно) до high (исключительно).

randn(d0, d1, …, dn)

Возвращает выборку (или выборки) из «стандартного нормального» распределения.

random([size])

Возвращает случайные числа с плавающей точкой в полуоткрытом интервале [0.0, 1.0).

random_integers(low[, high, size])

Случайные целые числа типа np.int_ между low и high, включительно.

random_sample([size])

Возвращает случайные числа с плавающей точкой в полуоткрытом интервале [0.0, 1.0).

ranf

Это псевдоним для random_sample.

rayleigh([scale, size])

Генерировать выборки из распределения Релея.

sample

Это псевдоним для random_sample.

seed(self[, seed])

Перезадать стартовую точку для генератора MT19937

set_state(state)

Установить внутреннее состояние генератора из кортежа.

shuffle(x)

Изменить последовательность на месте, перемешивая её содержимое.

standard_cauchy([size])

Генерировать выборки из стандартного распределения Коши с модой = 0.

standard_exponential([size])

Генерировать выборки из стандартного экспоненциального распределения.

standard_gamma(shape[, size])

Генерировать выборки из стандартного гамма-распределения.

standard_normal([size])

Генерировать выборки из стандартного нормального распределения (среднее=0, стандартное отклонение=1).

standard_t(df[, size])

Генерировать выборку из стандартного распределения Стьюдента с 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/random/legacy.html

Spec-Zone.ru

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