np.random.seed(seed)的作用
1: 随机种子确定后,则该种子之后产生之后的所有随机序列都固定下来了。
2:不管什么时候运行该种子生成的随机数的代码,生成的随机数序列都相同
3:无论在哪个电脑上运行该代码,随机数序列都相同
4:不管种子在代码哪里被声明,不管是循环里面还是外边,其后边不管在代码哪块产生的随机数序列,都是该种子对应的随机数序列,后边再次唤醒该种子后,其随机数序列和上边一摸一样。
总结:种子确定以后,该种子对应的随机数序列也就确定下来了。(无论何时何地)
代码部分解释:
代码1:
import numpy as np
for i in range(5):
np.random.seed(1)
print(np.random.random())
运行结果:
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
简单解释:每次都生成seed=1 的第一个随机数序列 则相同on
代码2:
import numpy as np
np.random.seed(1)
for i in range(5):
print(np.random.random()
输出:
0.417022004702574
0.7203244934421581
0.00011437481734488664
0.30233257263183977
0.14675589081711304
解释:当i1时,i2时为什么和i0时不相同,
因为i0 只是该种子所生成随机数序列的第一个值,i1 i2 分别对应随机数序列的第2,第3个值, 种子确定之后,确定的是一系列随机值,而不是一个随机值
#代码3
import numpy as np
num=0
while(num<5):
np.random.seed(1)
print(np.random.random())
num=num+1
print(np.random.random())
print(np.random.random())
print(np.random.random())
print(np.random.random())
print("--------------第二次唤醒种子后--------------------")
np.random.seed(1)
num=0
while(num<5):
print(np.random.random())
num=num+1
输出:
0.417022004702574
0.417022004702574//只不过是重复该种子对应的第一个随机数
0.417022004702574
0.417022004702574
0.417022004702574
0.7203244934421581
0.00011437481734488664
0.30233257263183977
0.14675589081711304
--------------第二次唤醒种子后--------------------
0.417022004702574
0.7203244934421581
0.00011437481734488664
0.30233257263183977
0.14675589081711304