numpy学习之随机数生成(1)

本文介绍了Numpy的随机数生成原理,包括BitGenerators和Generator的概念,以及如何创建和使用Generator。重点讲解了default_rng函数和Generator类,以及随机整数和浮点数的生成方法,如integers()和random()。同时提到了从数组中进行随机采样的choice()函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

涉及模组: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=Nonedtype=np.float64out=None)

                概述:返回[0,1)的随机浮点数

                参数:size:返回维度。dtype:返回数据类型,默认np.float64。out: 代替结果返回。out array维度必须和指定一致

  • random.Generator.choice(asize=Nonereplace=Truep=Noneaxis=0shuffle=True)         

                概述:从指定数组中返回样本

                参数:a: 如果是数组,则从其中返回样本;如果是整数,则从np.arange(a)中返回样本。size:返回维度。replace:数组元素是否可以复选,默认为True。p:概率数组,解释样本选择概率,默认为平均分布。axis: 采样方向,默认0为按行采样。shuffle:在无替换采样时,是否对样本进行洗牌。默认为True,False提供了一个加速。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值