numpy.random — Генерация случайных чисел¶
Подмодуль numpy.random предоставляет класс Generator, который извлекает выборки из распространённых распределений вероятностей. В основе лежит алгоритм перестановочно-конгруэнтного генератора (PCG); подробности см. на https://www.pcg-random.org/.
Generator — объект с состоянием: каждый вызов одного из его методов выборки продвигает внутреннее состояние, поэтому последовательные вызовы возвращают независимые выборки. Выходные массивы всегда имеют dtype numpy.float.
Классы¶
- class numpy.random.Generator(seed: int | tuple[int, ...] | None = None)¶
Создаёт новый генератор псевдослучайных чисел.
- Параметры:
seed – начальное значение (seed), используемое для инициализации состояния генератора. Если передано целое число, оно используется напрямую. Если передан кортеж целых чисел, вместо одного экземпляра возвращается кортеж независимо инициализированных объектов
Generator(по одному на каждый элемент). Если переданоNone, используется начальное значение по умолчанию для платформы (если оно настроено на этапе сборки); в противном случае возбуждаетсяValueError.- Исключение:
TypeError – если seed не равно
None, не является целым числом и не является кортежем целых чисел.ValueError – если seed равно
Noneи начальное значение по умолчанию не настроено.
- normal(loc: float = 0.0, scale: float = 1.0, size: int | tuple[int, ...] | None = None) float | ndarray¶
Извлекает выборки из нормального (гауссова) распределения.
- Параметры:
loc – среднее (центр) распределения.
scale – стандартное отклонение (ширина) распределения. Должно быть неотрицательным.
size – форма выходных данных. Если целое число, возвращается одномерный массив этой длины. Если кортеж, возвращается массив этой формы. Если
None(значение по умолчанию), возвращается единственное Python-значениеfloat.
- Результат:
либо Python-значение
float, либоnumpy.ndarrayиз чисел с плавающей точкой требуемой формы.- Исключение:
ValueError – если запрошенная форма превышает
ULAB_MAX_DIMS.TypeError – если size не равно
None, не является целым числом и не является кортежем.
Выборки генерируются с помощью преобразования Бокса-Мюллера.
- random(size: int | tuple[int, ...] | None = None, *, out: ndarray | None = None) float | ndarray¶
Извлекает выборки из равномерного распределения на полуоткрытом интервале
[0.0, 1.0).- Параметры:
size – форма выходных данных. Если целое число, возвращается одномерный массив этой длины. Если кортеж, возвращается массив этой формы. Если
None(значение по умолчанию) и out также равноNone, возвращается единственное Python-значениеfloat.out – необязательный заранее выделенный плотный
numpy.ndarrayиз чисел с плавающей точкой для приёма выборок. Если переданы и size, и out, их формы должны совпадать.
- Результат:
Python-значение
float, новыйnumpy.ndarrayили out (заполненный выборками) в зависимости от аргументов.- Исключение:
TypeError – если size имеет неподдерживаемый тип, либо out не является ndarray, либо out имеет dtype, отличный от
float.ValueError – если запрошенная форма превышает
ULAB_MAX_DIMS, если size иout.shapeне совпадают, либо если out не является непрерывным.
- uniform(low: float = 0.0, high: float = 1.0, size: int | tuple[int, ...] | None = None) float | ndarray¶
Извлекает выборки из равномерного распределения на полуоткрытом интервале
[low, high).- Параметры:
low – нижняя граница (включительно) распределения.
high – верхняя граница (исключая) распределения.
size – форма выходных данных. Если кортеж, возвращается массив этой формы. Если
None(значение по умолчанию), возвращается единственное Python-значениеfloat, извлечённое из[0.0, 1.0)(границы low/high в скалярном случае игнорируются).
- Результат:
либо Python-значение
float, либоnumpy.ndarrayиз чисел с плавающей точкой требуемой формы.- Исключение:
ValueError – если запрошенная форма превышает
ULAB_MAX_DIMS.TypeError – если size не равно
Noneи не является кортежем.
При одинаковых аргументах по умолчанию
uniform()порождает ту же последовательность, что иrandom().