all

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

发布于 2022-03-22 22:39:41

np.random.seed以下来自 Scikit-Learn 教程的代码做了什么?我对 NumPy
的随机状态生成器的东西不是很熟悉,所以我非常感谢外行人对此的解释。

np.random.seed(0)
indices = np.random.permutation(len(iris_X))
关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2022-03-22
    为面试而生,有面试问题,就找面试哥。

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看