Метод geometric
Метод geometric класса Generator генерирует случайные целые числа,
распределенные по геометрическому закону. Геометрическое распределение
описывает количество испытаний до первого успеха в серии независимых
испытаний Бернулли. Параметр p задает вероятность успеха в каждом
отдельном испытании. Метод принимает обязательный параметр p
(вероятность успеха) и необязательный параметр size для задания
формы выходного массива.
Синтаксис
rng = np.random.default_rng(seed)
arr = rng.geometric(p, [size])
Основные параметры
Метод принимает следующие параметры:
-
p- вероятность успеха в одном испытании. Должна быть в интервале (0, 1]. -
size- форма выходного массива. Может быть целым числом или кортежем.
Пример с одним значением
Сгенерируем одно случайное число из геометрического распределения с вероятностью успеха 0.5:
import numpy as np
rng = np.random.default_rng(42)
res = rng.geometric(p=0.5)
print(res)
Результат выполнения кода:
2
Пример с массивом
Сгенерируем массив из 5 случайных чисел, распределенных по геометрическому закону с вероятностью успеха 0.3:
import numpy as np
rng = np.random.default_rng(0)
arr = rng.geometric(p=0.3, size=5)
print(arr)
Результат выполнения кода:
[2 3 1 3 5]
Пример с многомерным массивом
Сгенерируем двумерный массив размером 2x3 из геометрического распределения с вероятностью успеха 0.2:
import numpy as np
rng = np.random.default_rng(123)
arr = rng.geometric(p=0.2, size=(2, 3))
print(arr)
Результат выполнения кода:
[[7 1 5]
[1 2 3]]
Пример с разными вероятностями
Сравним результаты генерации с разными вероятностями успеха.
Чем меньше p, тем больше в среднем будет значение:
import numpy as np
rng = np.random.default_rng(42)
arr1 = rng.geometric(p=0.9, size=5)
arr2 = rng.geometric(p=0.1, size=5)
print("p=0.9:", arr1)
print("p=0.1:", arr2)
Результат выполнения кода:
p=0.9: [1 1 1 3 1]
p=0.1: [15 3 3 1 7]