关于随机数种子np.random.seed(0),如何理解,先以如下代码为例:

import numpy as np

np.random.seed(0) # 先定义一个随机数种子;参数0是随便取的,可以认为是初值的标志

print(np.random.rand(5)) # "随机"生成5个数

print(np.random.rand(5)) # 再"随机"生成5个数

np.random.seed(0)

for i in range(6):

print(np.random.random()) # "随机"生成6个数

输出结果:

[0.5488135 0.71518937 0.60276338 0.54488318 0.4236548 ]

[0.64589411 0.43758721 0.891773 0.96366276 0.38344152]

0.5488135039273248

0.7151893663724195

0.6027633760716439

0.5448831829968969

0.4236547993389047

0.6458941130666561

可以看到:最后输出的6个随机数是依次从之前生成的10个随机数中取得的! 也就是说在代码中,我们看到 “ 随机 ” ,并不是真正随机(假随机)。

随机数种子相当于给我们一个初值,之后按照固定顺序生成随机数(也就是我们说的超级长的 list )随机数种子对后面的结果一直有影响,在一个随机数种子后生成的随机数都受这个随机数种子的影响,即生成的随机数都是由这个随机数种子给的初值,按照固定顺序生成的。每次使用之前都需要调用一下:np.random.seed(0)np.random.seed(0)中参数0是随便取的,可以认为是初值的标志,每次按照这个标志都可以得到相同的初值。

参考资料

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: