我正在使用来自 numpy.random
的函数在 Jupyter Lab 笔记本上,我正在尝试使用 numpy.random.seed(333)
设置种子.仅当种子设置与代码位于同一笔记本单元格中时,这才按预期工作。例如,如果我有一个这样的脚本:
import numpy as np
np.random.seed(44)
ll = [3.2,77,4535,123,4]
print(np.random.choice(ll))
print(np.random.choice(ll))
来自
np.random.choice(ll)
的输出将相同,因为种子已设置:# python seed.py
4.0
123.0
# python seed.py
4.0
123.0
现在,如果我尝试在 Jupyter 笔记本上做同样的事情,我会得到不同的结果:
# in [11]
import numpy as np
# even if I set the seed here the other cells don't see it
np.random.seed(333)
# in [12]
np.random.choice([1,23,44,3,2])
23
# gets the same numbers
# in [13]
np.random.choice([1,23,44,3,2])
44
# gets different numbers every time I run this cell again
有没有办法在 Jupyter 实验室笔记本中全局设置 numpy 随机种子?
最佳答案
因为您反复调用 randint,所以每次都会生成不同的数字。需要注意的是,seed 不会使函数始终返回相同的数字,而是使其返回相同的 序列 如果您重复运行 randint 相同的次数,将产生的数字。因此,您得到相同的 序列 每次重新运行 random.randint 时的数字,而不是它总是产生相同的数字。
如果您每次都想要相同的随机数,则在每次 random.randint 调用之前,在该特定单元格中重新播种应该有效。否则,您可以期望始终获得相同的数字序列,但不会每次都获得相同的数字。
关于python - Numpy 随机种子对整个 jupyter 笔记本有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51424857/