random模块
random模块实现了这种分布的伪随机数生成器,随机数可以被应用于数学、安全等领域,并且也经常被嵌入算法中,用以提高算法效率,在机器学习算法中对随机数的设定是必要的一步,并且随机数的设定会影响算法的好坏。
random模块提供的函数是基于random.Random类的隐藏实例的绑定方法,几乎所有模块函数都依赖于基本函数random()
,random()
函数在半开放区间[0.0, 1.0)内均匀生成随机浮点数。用Randon类作为子类,重写 random()
、 seed()
、 getstate()
以及 setstate()
方法可以自己设计不同随机生成器。
random针对整数,范围有统一的选择;针对序列,随机元素统一选择、存在用于生成列表的随机排列函数,以及用于随机抽样而无需替换的函数;针对实数轴,有计算均匀、正态(高斯)、对数正态、负指数、伽马和贝塔分布的函数,生成角度分布,可以使用von Mises分布。
Bookkeeping 函数
函数 | 释义 |
---|---|
random.seed(a=None, version=2) | 初始化随机数生成器,如果a被省略为或为None,则使用当前系统时间。如果提供随机源,则使用提供的随机源,如果a是int类型,则直接使用。 |
random.getstate() | 捕获随机生成器当前内部状态的对象,可以将该对象传递给setstate()来恢复状态 |
random.setstate(state) | state是调用getstate()获得,并且setstate()将生成器的内部状态恢复到getstate()被调用时候的状态 |
random.getrandbits(k) | 返回带有K位随机的Python整数,此方法随MersenneTwister生成器一起提供其他一些生成器也可以将其作为API的可选部分提供(注:Python 使用 Mersenne Twister 作为核心生成器。 它产生 53 位精度浮点数,周期为 2**19937-1)。 |
整数随机函数
函数 | 释义 |
---|---|
random.randrange(stop) | 返回不高于stop的一个随机数 |
random.randrange(start, stop, step) | 从 range(start, stop, step) 返回一个随机选择的元素,相当于 choice(range(start, stop, step)) ,但实际上并没有构建一个 range 对象,在 3.2 版更改: randrange() 在生成均匀分布的值方面更为复杂 |
random.randint |