首页 > 编程知识 正文

np产生随机数,np 随机数

时间:2023-05-05 00:00:01 阅读:177669 作者:1927

np.random.seed ()随机数种子np.random.seed ) (随机数种子1 .理解随机数种子2.np.random.seed ) )的参数

np.random.seed ) )随机数种子

随机数种子!以下均为个人理解,有误及时修改

在生成随机数时,我们可以利用随机数种子来控制要生成的随机数。 怎么说呢,我可以利用随机数种子得到相同或者部分形式的随机数。

1 .随机数籽数的理解随机数籽数将相当于为我下一个必须生成的随机数提供初始值,以便根据我给定的这个初始值、以恒定顺序来生成随机数。

个人觉得通俗理解:随机数种子的批量是给定的。 (随机数种子应该按照一定的顺序生成随机数,并不是一次给定批量,但是如果这些数量有一定的顺序,就很容易认为随机种子给了我们很多数据。 )需要生成随机数时,从该批量开始依次取值。

请看以下示例:

(1) ) ) )。

NP.random.seed(#预先定义随机数种子,) )的参数值的下一节是print(NP.random.rand )5) '随机),生成5个print ) NP.rand “随机”生成的7个个数在代码中,我们看到了“随机”,就是它不是真的随机(伪随机),观察结果就知道了。

结果[ 0.54881350.715189370.602763380.544883180.4236548 ] [ 0.64589411.437587210.891773.96366276.38344152 ] 0.54881350392732480.7151893637241950.60276337607164390.54488318299689690.423654793890470.64589411306665610.43330

为什么呢?

因为最初设定了随机种子,所以下一个生成的10个数有一定的顺序(i dont know! 请参阅。 为了便于理解,我们将随机种子视为超长的list,然后进行取随机数操作。 (NP.random.rand )从此列表开始依次取5个随机数,(NP.random.rand )5)再取5个随机数。 当然,说那不是list而是数组,OK! 和你一起,为了容易理解。

为什么后边生成的7个 “随机” 数和之前的前7个数相同呢?

这是因为在生成这7个“随机”数据之前,重新定义了随机数种子(NP.random.seed(0) )。 定义随机数种子,不就是定义超长的list吗? 这个list和前面的list一样! 呃! 呃! 所以,我们取了7个‘随机’数,不是这个list中的前7个吗!

)2)再看一个例子

NP.random.seed(0) for i in range(7)7) :print ) NP.random.random ) ) NP.random.seed )0) print )

0.54881350392732480.7151893637241950.60276337607164390.54488318299689690.423654793890470.64589411306665610.43330 890 0276338 ] [ 0.544883180.42365480.64589411 ] 2x 3矩阵中的六个和随机生成的前六个是相同的。 因为没有必要说明吧,所以请参阅我想生成两个一样的随机矩阵怎么办?是不是在生成矩阵前,定义随机数种子就好了

总结:

)1)随机数种子给定初始值,之后相当于按一定顺序生成随机数) (所谓的超长list ) )。

)随机数种子一直影响着后来的结果。 某个随机数种子后生成的随机数都受此随机数种子的影响。 也就是说,所生成的随机数都是从这个随机数种子给定的初始值、按恒定顺序来生成(所生成的随机数受与其最接近的随机数种子的影响)。 即之前的随机数种子)。

那么问题来了,随机数种子的初值和顺序由啥决定呢?下一小节!

2.np.random.seed ()的参数个人理解:随机数种子给定的初始值和顺序是相同的。 因为该顺序是不知道的,所以可以认为是由初始值决定的,也可以认为是生成的超大的list。

那么,这个初始值怎么决定呢,是由np.random.seed ()中的参数决定的。 如果每次这个参数都一样,我们的初始值就一样。种子就是相同的

种子相同,之后长得枝条就是相同的:即list是相同的。

)1)是第一个小节的例子,np.random.seed(0),参数都是0。

NP.random.seed(0) for i in range(7)7) :print ) NP.random.random ) ) NP.random.seed )0) print ) 0.54881350392732480.7151893637241950.6027637607164390.54488318299689690.423654793890470.6458941306665610.420

NP.random.seed(0) print ) NP.random.rand ) 2,3 ) ) NP.random.seed )1) print ) NP.random.rand ) 2,3 )

[ 0.54881350.715189370.60276338 ] [ 0.544883180.42365480.64589411 ] [ 4.17022005 e-01.20324493 e-01.14374817 e-017 [ [ 0.54881350.71518937.60276338 ] [ 0.544883180.4236548.64589411 ]。这个参数似乎是随意取的,被认为是初始值的标志,每次遵循这个标志都会得到同样的初始值。 但是这个参数好像必须是int类型啊。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。