Think генератора:
def gen(start):
while True:
start += 1
yield start
Это будет постоянно давать следующий номер из числа вставки к генератору. С семенами это почти та же концепция. Я пытаюсь установить переменную, в которой будут генерироваться данные, а позиция внутри которой сохраняется. Давайте это на практике:
>>> generator = gen(5)
>>> generator.next()
6
>>> generator.next()
7
Если вы хотите перезапустить, необходимо перезапустить генератор, а также:
>>> generator = gen(5)
>>> generator.next()
6
Та же идея с Numpy объекта. Если вы хотите получить одинаковые результаты с течением времени, вам необходимо перезапустить генератор с теми же аргументами.
>>> np.random.seed(seed=0)
>>> np.random.rand(5) < 0.8
array([ True, True, True, True, True], dtype=bool)
>>> np.random.rand(5) < 0.8
array([ True, True, False, False, True], dtype=bool)
>>> np.random.seed(seed=0) # reset the generator!
>>> np.random.rand(5) < 0.8
array([ True, True, True, True, True], dtype=bool)
Да; если вы хотите получить тот же результат каждый раз, когда вам нужно вызвать «семя» между ними. Он уже детерминирован, но это * не означает, что вы получаете тот же результат каждый раз, когда вы вызываете 'np.random'. – jonrsharpe
Это также может быть полезно для ваших целей: [Разница между 'np.random.seed()' и 'np.random.RandomState()'] (http://stackoverflow.com/a/22994890/1730674) – askewchan