该函数是为了生成一组固定的随机数,这个随机数可以理解为是个无限长的数组,其中np.random.seed()
需要设置一个参数,可以将这个参数理解为指定的seed(就是他的编号)。
例如:np.random.seed(10),就表示使用的是第十号种组,也可以使用不同的标号,这个参数相当于给你的随机数数组起了个名字,当你想要使用某一组时,输入其标号即可。下面举例说明:
import numpy as np
for i in range(1,3):
print(i)
np.random.seed(1)
a = np.random.rand(2,3)
print(a)
#######################################
#结果如下
1
[[4.17022005e-01 7.20324493e-01 1.14374817e-04]
[3.02332573e-01 1.46755891e-01 9.23385948e-02]]
2
[[4.17022005e-01 7.20324493e-01 1.14374817e-04]
[3.02332573e-01 1.46755891e-01 9.23385948e-02]]
可以看到,两次生成的随机数组是一样的,应为使用的是同一组随机数。
for i in range(1,3):
print(i)
np.random.seed(i)
a = np.random.rand(2,3)
print(a)
#######################################
#结果如下
1
[[4.17022005e-01 7.20324493e-01 1.14374817e-04]
[3.02332573e-01 1.46755891e-01 9.23385948e-02]]
2
[[0.4359949 0.02592623 0.54966248]
[0.43532239 0.4203678 0.33033482]]
可以观察到这里第一次生成的随机数组与上面的还是一致的,说明这个种子数组是固定的,即seed(1)就是固定的,同理其他标号的随机数种子数组也是固定的。
我在不同的程序文件下使用同一序号的种子,发现生成的结果相同,将程序关闭重启还是一样,所以我觉得,种子序号的结果是固定的?(跟电脑有关?希望有懂的大神可以解答一下)