np.random.seed()理解
就作用来说
此方法产生的是随机数堆(也就是他们所说的随机数种子),seed参数有没有都可以。
为什么要指定seed参数呢?
如果你想验证你的python程序是否和网上或者别人的重现的一致的话,(根据控制变量法/狗头)最好是参数一致,所以就需要指定seed参数来确保你的随机数和他的随机数相同。
通俗来说,比如生成随机数是一个大型游戏,那么seed的选择就是选择游戏的一条世界线,在选择一个参数后,所成生成的所有的随机数都不是真正的“随机”了,在某种意义来说,之后生成的一组随机数变成了一组参数
当然,为什么拿大型游戏举例?
比如说A选择了这条世界线,B也选择了这条世界线,A和B所经历的剧情…等等是一样的,这也和seed参数原理相同,A使用了seed(1),B也使用了seed(1),他们都先取了10个随机数,他们的随机数也是相同的。。
and
我所理解的随机数种子,其实就是一组随机数序列,
图画的优点丑。。多包涵(●’◡’●)
np.random.seed(2)
x = np.random.randn(1,10)
经过上述操作,他会拿出当前随机数种子中的前十个值,如果再来一波
x = np.random.randn(1,10)
则会拿出种子中 11-20 十个值,如果还想拿前十个,需要再指定一遍seed(2),意思就是把这条时间线重置了。好汉,咱们重新来过~
np.random.seed(2)
x = np.random.randn(1,10)
np.random.seed(2)
x = np.random.randn(1,10)
就是这样~
希望我把我的理解说明白了
*note:这种理解思想是前几天翻博客,有个大佬的评论启发了我,在这里感谢一下~