numpy.random — Генерація випадкових чисел

Підмодуль numpy.random надає клас Generator, що видає вибірки із загальних імовірнісних розподілів. В основі алгоритму лежить перестановочно-конгруентний генератор (PCG); деталі — на https://www.pcg-random.org/.

Об’єкт Generator зберігає стан: кожен виклик одного з методів вибірки змінює внутрішній стан, тому послідовні виклики повертають незалежні вибірки. Вихідні масиви завжди мають тип numpy.float.

Класи

class numpy.random.Generator(seed: int | tuple[int, ...] | None = None)

Створити новий псевдовипадковий генератор чисел.

Параметри:

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 або 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 – необов’язковий попередньо виділений щільний float numpy.ndarray для запису вибірок. Якщо задано і size, і out, їхні форми мають збігатися.

Повертає:

Python float, новий numpy.ndarray або out (заповнений вибірками) залежно від аргументів.

Викликає:
  • TypeError – якщо size має непідтримуваний тип, або out не є ndarray, або out не має типу 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 або float numpy.ndarray запитаної форми.

Викликає:
  • ValueError – якщо запитана форма перевищує ULAB_MAX_DIMS.

  • TypeError – якщо size не є ні None, ні кортежем.

За однакових аргументів за замовчуванням uniform() дає ту саму послідовність, що й random().