np.random.seed(0)
делает случайные числа предсказуемыми
>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55, 0.72, 0.6 , 0.54])
>>> numpy.random.seed(0) ; numpy.random.rand(4)
array([ 0.55, 0.72, 0.6 , 0.54])
При сбросе семян (каждый раз) один и тот же набор номеров будет появляться каждый раз.
Если случайное начальное число не сбрасывается, при каждом вызове появляются разные числа:
>>> numpy.random.rand(4)
array([ 0.42, 0.65, 0.44, 0.89])
>>> numpy.random.rand(4)
array([ 0.96, 0.38, 0.79, 0.53])
(псевдо-) случайные числа работают, начиная с числа (начального числа), умножая его на большое число, добавляя смещение, а затем получая по модулю эту сумму. Полученное число затем используется в качестве начального числа для генерации следующего «случайного» числа. Когда вы устанавливаете семя (каждый раз), оно делает то же самое каждый раз, давая вам одинаковые числа.
Если вы хотите, казалось бы, случайные числа, не устанавливайте начальное число. Однако если у вас есть код, использующий случайные числа, которые вы хотите отлаживать, может быть очень полезно установить начальное число перед каждым запуском, чтобы код делал то же самое при каждом запуске.
Чтобы получить наиболее случайные числа для каждого запуска, позвоните numpy.random.seed()
. Это приведет к тому, что numpy установит начальное число на случайное число, полученное из /dev/urandom
или его аналога в Windows, или, если ни один из них не будет доступен, он будет использовать часы.
Для получения дополнительной информации об использовании seed для генерации псевдослучайных чисел см. Википедию .