python - Numpy 随机种子对整个 jupyter 笔记本有效

标签 python numpy jupyter-notebook

我正在使用来自 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/

相关文章:

python - 在 app-engine-patch 中导入 django 设置

Python 3 - 如何连续删除句子中的字母?

python - 在 pandas.DataFrame 中添加一个 np.array 作为列

python - numpy diff 奇怪的行为

ipython - 添加用于向上移动单元格和向下移动单元格的键盘快捷键

linux - 升级到 'factory' 默认值后如何重置 iPython/Jupyter 配置文件?

python - 使用MSS和OpenCV捕获监视器

python - 如何在 Python 中打印图案时拆分行

python - 带移位列的矩阵元素明智乘法

python - 访问在远程服务器上运行的 Ipython Notebook