Python - Random 模块



random 模块是一个标准的库模块,它为各种操作提供了功能,例如随机数生成、洗牌序列和进行随机选择。在本模块中,我们将研究 Python random 模块的功能,并提供真实示例来演示如何使用它。

在开发应用程序时,使用 python“random”模块对于统计分析、游戏、保护敏感数据的加密密钥等任务至关重要。让我们浏览一下具有不同类型数据的一些方法。

  • 对于整数,可以从 randint() randrange() 函数实现的范围中统一选择,其中函数随机选择指定范围内的整数,确保该范围之间的每个整数都有相等的概率被选中。
  • 对于像 list、tuple 或任何其他可迭代对象这样的顺序数据,我们可以通过 choice()、choices() 等函数来实现相同的功能。random 模块的几乎所有内置函数都依赖于基本函数 random.random(),该函数会生成一个随机浮点值。
  • 在统计分析领域,使用各种分布,如高斯分布、均匀分布、对数正态分布来得出数据的见解。random 模块提供了从这些分布中生成样本的函数。
我们确实知道 random 模块提供了各种生成随机数的函数,但是,可能不太明显的是这些函数是 random 的隐藏实例的绑定方法。Random 类。这意味着,python 会创建 Random 类的实例并将函数绑定到该实例。

Python random.Random 类

Random 类执行 random 模块使用的默认伪随机数生成器。构造函数 random.Random([seed]) 负责创建 Random 类的实例,从而进一步允许初始化随机数生成器。

种子确定生成随机数的起点。getstate() 和 setstate() 等函数允许我们访问和更新生成器的内部状态,从而可以保存和恢复序列。

Python random.SystemRandom 类

Random 模块不仅提供了用于生成随机数的 Random 类,还提供了 SystemRandom 类,该类旨在使用系统提供的源来生成随机数。此类使用 os.urandom() 函数,该函数生成加密保护的字节和随机数。

让我们看看 random 模块中的各种函数。

整数函数

以下是专为处理整数而设计的函数 -

函数 描述
random.randrange([start,] stop [,step]) 此函数返回从指定范围内随机选择的元素。
random.randint(a,b) 此函数接受两个参数,并返回这些参数之间的范围 (含) 中的整数。
random.getrandbits(a) 此函数返回一个具有随机位的非负整数。
random.random() 随机浮点数 r,使得 0 小于或等于 r,r 小于 1

序列函数

以下是专为处理序列而设计的函数 -

函数 描述
random.choice(seq) 此函数接受一个序列,并返回该序列中的随机元素。
random.choices() 此函数从给定序列中返回特定大小的列表,并带有 replacement。
random.shuffle(seq) 此函数对不可变序列进行随机排序,并返回新的随机序列。
random.sample() 此函数从给定序列中返回特定大小的列表,无需任何替换。

发行版的函数

以下是专为使用发行版而设计的函数 -

函数 描述
random.binomialvariate(n,p) 此函数返回一个整数值,该值表示为概率为 p 的 n 个跟踪观察到的成功 no:of。
random.uniform(a, b) 此函数返回介于 a、b(含)之间的随机浮点值。
random.triangular(a,b,mode) 此函数返回介于 a、b 之间的浮点值,包括 a,b 和边界之间的指定模式。
random.betavariate() 此函数返回一个遵循 beta 分布的随机变量。
random.expovariate(lambd=) 如果参数 lambd 为正数,则函数返回一个介于 0 到正无穷大之间的值。如果 lambd 为负数,则返回一个介于负无穷大和 0 之间的值。
random.gammavariate(alpha,beta) 此函数返回一个随机变量,该变量遵循 Gamma 分布,具有形状参数 alpha 和缩放参数 beta。
random.gauss(mu,std) 此函数返回一个随机变量,该变量服从高斯分布,平均值为 “mu”,标准差为 “std”。
random.lognormvariate(mu,std) 此函数返回一个随机变量,该变量遵循均值 “mu” 和标准差 “std” 的对数规范分布
random.normalvariate(mu,std) 此函数返回一个随机变量,该变量服从均值 “mu” 和标准差 “std” 的正态分布
random.vonmisesvariate(mu,kappa) 此函数返回一个随机变量,该变量遵循 von Mises 分布,具有平均角度 mu 和浓度参数,该参数用于测量分布的离散度。
random.paretovariate(alpha) 此函数返回一个随机变量,该变量遵循形状参数 alpha 的帕累托分布
random.weibullvariate(alpha, beta) 此函数返回一个随机变量,该变量服从形状参数 alpha 和尺度参数 beta 的 weibull 分布

字节函数

以下是专为处理字节而设计的函数 -

函数 描述
random.randbytes(a) 此函数用于生成随机字节。

替代生成器的函数

以下是专为替代生成器的函数 -

函数 描述
random.seed([x]) 此函数初始化随机数生成器的内部状态。
random.getstate() 此函数返回生成器的内部状态。
random.setstate() 此函数设置随机数生成器的内部状态。