功能:用于生成指定随机数。
参数:seed(n)中的参数n比喻成“堆”
,seed(5)表示第5堆,n的数值基本可以随便设置。设置的seed(n)仅一次有效。
(也有人比喻seed(n)里的n为一个盛有随机数的“聚宝盆”
,一个数字代表一个“聚宝盆”,当我们设置相同的seed()时,“聚宝盆”就是一样的,所以每次取出的随机数就会相同。)
np.random.seed(n)可以按照顺序产生一组固定的数组
,如果使用相同的seed()值,则每次生成的随机数都相同;如果不设置这个值,那么每次生成的随机数不同。
注意:需要每次调用的时候都seed()一下,表示种子相同,从而生成的随机数相同。
例1:只调用一次seed(),两次产生的随机数不同。
import numpy as py
np.random.seed(1)
L1 = np.random.randn(3,3)
L2 = np.random.randn(3,3) # 这已经不是在设置的np.random.seed(1)下生成的随机数了,而是在默认的random下随机生成。
print(L1)
print(L2)
# 结果
[[ 1.62434536 -0.61175641 -0.52817175]
[-1.07296862 0.86540763 -2.3015387 ]
[ 1.74481176 -0.7612069 0.3190391 ]]
[[-0.24937038 1.46210794 -2.06014071]
[-0.3224172 -0.38405435 1.13376944]
[-1.09989127 -0.17242821 -0.87785842]]
例2:调用两次seed(),两次产生的随机数相同
import numpy as np
np.random.seed(1)
L1 = np.random.randn(3,3)
np.random.seed(1)
L2 = np.random.randn(3,3)
print(L1)
print(L2)
# 结果
[[ 1.62434536 -0.61175641 -0.52817175]
[-1.07296862 0.86540763 -2.3015387 ]
[ 1.74481176 -0.7612069 0.3190391 ]]
[[ 1.62434536 -0.61175641 -0.52817175]
[-1.07296862 0.86540763 -2.3015387 ]
[ 1.74481176 -0.7612069 0.3190391 ]]
总结:从每堆种子里选出来的数都是不会变的,从不同的堆里选随机种子每次都不一样。若想每次都能得到相同的随机数,每次产生随机数之前,都需要调用一次seed()。
参考资料:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。