涉及模组:numpy.random
原理:
Numpy的随机数程序使用BitGenerator的组合产生伪随机数,以创建序列,并使用Generator从不同的统计分布中采样:
BitGenerators: 产生随机数的对象。这些通常是无符号整数字,充满了32或64个随机位的序列。
生成器: 将BitGenerator中的随机比特序列转化为指定区间内遵循特定概率分布(如均匀、正态或二项式)的数字序列的对象。
概念:
- Random Generator
Generator提供了对各种分布的访问,并作为RandomState的替代。两者之间的主要区别是,Generator依靠一个额外的BitGenerator来管理状态并生成随机位,然后将其转化为有用分布的随机值。Generator使用的默认BitGenerator是PCG64。可以通过向Generator传递一个实例化的BitGenerator来改变这个BitGenerator。
创建Generator的方法:
numpy.random.default_rng(seed=None)
概述:用默认的BitGenerator(PCG64)构造一个新的Generator。
参数:
seed{None, int, array_like[ints], SeedSequence, BitGenerator, Generator}, optional
一个用于初始化BitGenerator的种子。如果没有,那么新鲜的、不可预测的熵将从操作系统中提取。如果传递了一个int或array_like[ints],那么它将被传递给SeedSequence,以获得初始BitGenerator状态。我们也可以传入一个SeedSequence实例。此外,当传递一个BitGenerator时,它将被Generator包装起来。如果传入一个Generator,它将被原样返回。
numpy.random.Generator(bit_generator)
概述:返回一个bitGernerator
参数:
bit_generator 可选的bit_generator, 如 PCG64()
- 随机数生成方法
- numpy.random.Generator.integers(low[, high, size, dtype, endpoint])
概述:返回从低(包括)到高(不包括)范围内的随机整数
参数:low:最低点(包括)。high:最高点(不包括)。size:返回维度。dtype:返回数据类型,默认np.int64.。endpoint:如果为True,将包含最高点进行随机取整,默认False。
- numpy.random.Generator.random(size=None, dtype=np.float64, out=None)
概述:返回[0,1)的随机浮点数
参数:size:返回维度。dtype:返回数据类型,默认np.float64。out: 代替结果返回。out array维度必须和指定一致
- random.Generator.choice(a, size=None, replace=True, p=None, axis=0, shuffle=True)
概述:从指定数组中返回样本
参数:a: 如果是数组,则从其中返回样本;如果是整数,则从np.arange(a)中返回样本。size:返回维度。replace:数组元素是否可以复选,默认为True。p:概率数组,解释样本选择概率,默认为平均分布。axis: 采样方向,默认0为按行采样。shuffle:在无替换采样时,是否对样本进行洗牌。默认为True,False提供了一个加速。