关于随机数种子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是随便取的,可以认为是初值的标志,每次按照这个标志都可以得到相同的初值。
版权声明:本文为weixin_45216861原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。