numpy.random.seed()随机数生成器理解

本文围绕numpy.random.seed()函数展开,介绍其作用是利用随机数种子使每次生成相同随机数。通过多个例子说明,设置相同种子值时随机数相同,不设置则因时间差异不同,还提及在目标检测中用该函数绘制不同颜色检测框可实现相同打乱结果。

感觉一直碰到随机数生成器numpy.random.seed()这个函数,然后每次都是直接过去了,但是最近在目标检测的代码中老是碰到这个函数用来绘制表示不同目标类别的检测框(不同目标类别的检测框用不同的颜色进行绘制),想想还是把它弄懂吧。

首先说一下numpy.random.seed()函数的作用:主要作用就是利用随机数种子,每次都生成相同的随机数。具体的说就是(先通过看下面的例子再理解会比较容易):

seed( ) 用于指定随机数生成时所用算法(所用算法可以是np.random.randn(),numpy.random.shuffle()等等)开始位置的整数值,如果使用相同的seed( )值,则每次生成的随机数都相同,因为该参数指定了一个随机数生成的起始位置,每个参数对应一个位置,并且在该参数确定后,其后面的随机数的生成顺序也就确定了。 如果不设置这个值,则系统会根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。 例如:可以在numpy.random.seed(整数值)后使用numpy.random.shuffle(array)来实现同样随机结果的打乱,即seed(整数值)确定后,每次numpy.random.shuffle(array)结果是相同的,整数值可以随意取,因为这个参数只是确定一下随机数的起始位置而已。np.random.randn(),numpy.random.shuffle()这些函数生成的数据可以理解成本身是固定不变的,只不过系统会根据时间自己选择开始位置的这个值,这样每次生成的随机数就会因时间差异而不同,所以就看到了我们理解的每次生成了不同的随机数(np.random.randn())和打乱顺序后的每次不一样的数据(numpy.random.shuffle())。

举例1说明:

import numpy as np

if __name__ == '__main__':
    i = 0
    while (i < 6):
        if (i < 3):
            np.random.seed(10101)
            print(np.rand
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值