Метод triangular
Метод triangular класса Generator генерирует случайные числа,
подчиняющиеся треугольному распределению. Треугольное распределение определяется
тремя параметрами: левой границей left, правой границей right
и модой mode (пиком распределения). В качестве первого аргумента метод
принимает левую границу, вторым - правую границу, третьим - моду.
Четвертым параметром можно задать размер выходного массива.
Синтаксис
generator.triangular(left, right, mode, size=None)
Пример
Сгенерируем одно случайное число из треугольного распределения с параметрами left=0, right=10, mode=4:
import numpy as np
rng = np.random.default_rng(0)
res = rng.triangular(0, 10, 4)
print(res)
Результат выполнения кода:
4.76455221789739
Пример
Создадим массив из 5 случайных чисел из треугольного распределения с параметрами left=-5, right=5, mode=0:
import numpy as np
rng = np.random.default_rng(1)
arr = rng.triangular(-5, 5, 0, size=5)
print(arr)
Результат выполнения кода:
[-2.94331939 -2.2434664 0.15857374 1.74563406 1.66908985]
Пример
Сгенерируем двумерный массив размером 2x3 из треугольного распределения с параметрами left=1, right=6, mode=3:
import numpy as np
rng = np.random.default_rng(2)
arr = rng.triangular(1, 6, 3, size=(2, 3))
print(arr)
Результат выполнения кода:
[[3.14877797 2.63610972 2.54415582]
[4.03332123 3.99003816 3.38983944]]
Пример
Сравним гистограммы распределений с различными модами при фиксированных границах left=0 и right=10:
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.default_rng(0)
data_mode_2 = rng.triangular(0, 10, 2, size=1000)
data_mode_5 = rng.triangular(0, 10, 5, size=1000)
data_mode_8 = rng.triangular(0, 10, 8, size=1000)
plt.hist(data_mode_2, bins=20, alpha=0.5, label='mode=2')
plt.hist(data_mode_5, bins=20, alpha=0.5, label='mode=5')
plt.hist(data_mode_8, bins=20, alpha=0.5, label='mode=8')
plt.legend()
plt.show()
Результат выполнения кода - три гистограммы, наглядно показывающие, как смещение моды влияет на форму треугольного распределения.
Смотрите также
-
метод
random,
который генерирует числа из равномерного распределения -
метод
uniform,
который также генерирует равномерно распределенные числа -
метод
normal,
генерирующий числа из нормального (гауссовского) распределения -
метод
exponential,
генерирующий числа из экспоненциального распределения