Spec-Zone.ru › NumPy 1.21

Запись случайных чисел из прошлого

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

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

Хотя мы предоставляем генератор MT19937 для независимого использования с 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.

Parameters
seed{None, int, array_like, BitGenerator}, optional

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

См. также

Generator
MT19937
numpy.random.BitGenerator

Примечания

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

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

get_state()

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

set_state(state)

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

seed(self[, seed])

Переинициализирует генератор 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 BitGenerator

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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/random/legacy.html

Spec-Zone.ru

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