想象一台发电机:
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)
>>> np.random.rand(5) < 0.8
array([ True, True, True, True, True], dtype=bool)
np.random
之间调用seed
。它已经是确定性的,但这并不意味着你每次调用np.random
都会得到相同的结果。 - jonrsharpenp.random.seed()
和np.random.RandomState()
之间的区别 - askewchan