numpy中的seed

  1. 函数np.random.seed(n)解释
    功能:用于生成指定随机数。

参数:seed(n)中的参数n比喻成“堆”,seed(5)表示第5堆,n的数值基本可以随便设置。设置的seed(n)仅一次有效。

(也有人比喻seed(n)里的n为一个盛有随机数的“聚宝盆”,一个数字代表一个“聚宝盆”,当我们设置相同的seed()时,“聚宝盆”就是一样的,所以每次取出的随机数就会相同。)

  1. 用法
    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()。

你可能感兴趣的:(python,numpy,python,机器学习)