Функция seed
Функция seed устанавливает начальное значение (зерно)
для генератора псевдослучайных чисел NumPy. Это необходимо,
чтобы сделать результаты воспроизводимыми: при одинаковом
зерне последовательность случайных чисел будет одинаковой.
Функция относится к модулю numpy.random.
Синтаксис
np.random.seed(seed)
Параметр seed может быть целым числом или
другим объектом, который можно преобразовать в
32-битное целое. Если передать None, то
зерно будет выбрано автоматически (на основе
системного времени или данных ОС).
Пример
Установим зерно и сгенерируем три случайных числа:
import numpy as np
np.random.seed(42)
arr = np.random.randint(0, 10, size=5)
print(arr)
Результат выполнения кода:
[6 3 7 4 6]
Если запустить код ещё раз, результат будет тем же, благодаря фиксированному зерну.
Пример
Покажем, что при одинаковом зерне последовательности совпадают:
import numpy as np
np.random.seed(0)
arr1 = np.random.rand(3)
np.random.seed(0)
arr2 = np.random.rand(3)
print(arr1)
print(arr2)
Результат выполнения кода:
[0.5488135 0.71518937 0.60276338]
[0.5488135 0.71518937 0.60276338]
Пример
Если использовать разные зерна, последовательности будут отличаться:
import numpy as np
np.random.seed(1)
arr1 = np.random.normal(0, 1, 3)
np.random.seed(2)
arr2 = np.random.normal(0, 1, 3)
print(arr1)
print(arr2)
Результат выполнения кода:
[ 1.62434536 -0.61175641 -0.52817175]
[-0.41675785 -0.05626683 -2.1361961 ]
Пример
Функцию seed можно использовать с генератором
default_rng для более современного подхода:
import numpy as np
rng = np.random.default_rng(seed=123)
arr = rng.integers(0, 100, size=4)
print(arr)
Результат выполнения кода:
[47 74 11 91]
Смотрите также
-
функцию
default_rng,
которая создаёт генератор с более современным API -
функцию
rand,
которая генерирует случайные числа из равномерного распределения -
функцию
randn,
которая генерирует числа из стандартного нормального распределения -
функцию
randint,
которая генерирует случайные целые числа из заданного диапазона