python - numpy.random.seed(0) 做什么?

np.random.seed 是什么意思?怎么办?

np.random.seed(0)

最佳答案

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()。 This将导致 numpy 将种子设置为从 /dev/urandom 或其 Windows 模拟获得的随机数,或者,如果这些都不可用,它将使用时钟。

有关使用种子生成伪随机数的更多信息,请参阅 wikipedia .

https://stackoverflow.com/questions/21494489/

相关文章:

python - 转置列表列表

linux - 如何为 wget 设置代理?

python - 字典和默认值

python - 如何从 Python 中的函数返回两个值?

python - 仅列出当前目录中的文件

python - 省略号 [...] 在列表中是什么意思?

c - socket编程中AF_INET和PF_INET有什么区别?

linux - 在 Unix 中,我可以在一个目录中运行 'make' 而不先 cd'ing 到那个

linux - 在 Unix/Linux 中判断两个文件是否具有相同内容的最快方法?

linux - grep 不显示路径/文件 :line