numpy.random.RandomState(1)中的1的用法

问题描述:numpy.random.RandomState(1)中1什么用处

在Python Machine Learning(2nd)中有

def __init__(self,eta=0.01,n_iter = 50, random_state=1):
    self.eta = eta
    self.n_iter = n_iter
    self.random_state = random_state
rgen = np.random.RandomState(self.random_state)

这里的random_state=1指的是伪随机数生成器的种子,简单来说每个种子对应一个随机数或者数列,可以理解为数列识别器。

验证和解释

基本语法如下

numpy.random.uniform(low, high, size)

生成一个介于low和high的矩阵,矩阵大小为size

运行第一个程序

# try 2 times with seed=1
import numpy
for i in range(2):
    rgen = numpy.random.RandomState(1)
    arrayA = rgen.uniform(0,1,(3,3))
    print (arrayA)

结果如下:

[[4.17022005e-01 7.20324493e-01 1.14374817e-04]
 [3.02332573e-01 1.46755891e-01 9.23385948e-02]
 [1.86260211e-01 3.45560727e-01 3.96767474e-01]]
[[4.17022005e-01 7.20324493e-01 1.14374817e-04]
 [3.02332573e-01 1.46755891e-01 9.23385948e-02]
 [1.86260211e-01 3.45560727e-01 3.96767474e-01]]

运行第二个程序

# try 2 times with seed=1+i
import numpy

for i in range(2):
    rgen = numpy.random.RandomState(1+i)
    arrayB = rgen.uniform(0,1,(3,3))
    print (arrayB)

结果如下:


[[0.4359949  0.02592623 0.54966248]
 [0.43532239 0.4203678  0.33033482]
 [0.20464863 0.61927097 0.29965467]]
[[0.5507979  0.70814782 0.29090474]
 [0.51082761 0.89294695 0.89629309]
 [0.12558531 0.20724288 0.0514672 ]]

可以看到seed固定的时候,随机出来的结果相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值