【Python 标准库学习】伪随机数生成库 — random

欢迎加入 Python 官方文档翻译团队:https://www.transifex.com/python-doc/


随机函数在很多科学计算中都会用到,比如生成一系列随机数来计算平均值、高斯分布、伽马分布、贝塔分布、对数正态分布等。

几乎所有模块函数都依赖于基本函数 random() ,它在半开放区间 [0.0,1.0) 内均匀生成随机浮点数。 Python 使用 Mersenne Twister 作为核心生成器。 它产生 53 位精度浮点数,周期为 219937-1 ,其在 C 中的底层实现既快又线程安全。 Mersenne Twister 是现存最广泛测试的随机数发生器之一。 但是,因为完全确定性,它不适用于所有目的,并且完全不适合加密目的。

random 模块官方文档:https://docs.python.org/3/library/random.html

random 模块部分常用函数:

函数功能
random()返回一个在 [0.0, 1.0) 范围内的随机浮点数
uniform(a, b)在指定范围 [a, b] 内返回一个随机浮点数
randint(a, b)在指定范围 [a, b] 内返回一个随机整数
choice(seq)从非空序列 seq 中返回一个随机元素
sample(population, k)返回在多个字符中(population)生成指定数量(k)的随机字符
randrange(start, stop[, step])在指定范围(start, stop) 内返回一个间隔为 step 的随机整数,step 为可选参数
shuffle(x)将序列 x 随机打乱位置
triangular(low, high, mode)返回三角形分布的随机数,low、high 为返回值的上下限,mode 为中值
betavariate(alpha, beta)求 Beta 分布的随机数,其中 alpha > 0beta > 0,返回值的范围介于 0 和 1 之间
expovariate(lambd)指数分布,lambd 是 1.0 除以所需的平均值,它应该是非零的
如果 lambd 为正,则返回值的范围为 0 到正无穷大
如果 lambd 为负,则返回值的范围为负无穷大到 0
gammavariate(alpha, beta)Gamma 分布,参数的条件是 alpha > 0beta > 0
gauss(mu, sigma)高斯分布,mu 是平均值,sigma 是标准差
lognormvariate(mu, sigma)对数正态分布,mu 是平均值,sigma 是标准差,mu 可以是任何值,sigma 必须大于零
normalvariate(mu, sigma)正态分布,mu 是平均值,sigma 是标准差
vonmisesvariate(mu, kappa)冯·米塞斯分布(von Mises),mu 是平均角度,以弧度表示,介于 0 和 2 * pi 之间
kappa 是浓度参数,必须大于或等于零
如果 kappa 等于零,则该分布在 0 到 2 * pi 的范围内减小到均匀的随机角度
paretovariate(alpha)帕累托分布,alpha 是形状参数
weibullvariate(alpha, beta)威布尔分布,alpha 是比例参数,beta 是形状参数

常见函数应用举例:

random.random()

生成一个在 0.0 <= x < 1.0 之间的浮点数

>>> import random      # 导入 random 模块
>>> random.random()    # 调用 random() 方法
0.7811493181713127     # 随机生成一个大于等于 0,小于 1 的浮点数

random.uniform(a, b)

在指定范围 [a, b] 内获取随机浮点数

>>> import random
>>> random.uniform(-5, 5)
-4.117969777026395
>>> random.uniform(-10, -5)
-8.257739458506384
>>> random.uniform(1.8, 9.2)
8.129467781976114

random.randint(a, b)

在指定范围 [a, b] 内获取随机整数

>>> import random
>>> random.randint(1, 20)
8

random.choice(seq)

从非空序列 seq 中返回一个随机元素

>>> import random
>>> random.choice('tomorrow')
'o'
>>> random.choice(['python', 'c++', 'java'])
'java'

random.sample(population, k)

返回在多个字符中(population)生成指定数量(k)的随机字符

>>> import random
>>> random.sample('dsabkl2498sjdsa8asd7f0',5)
['f', '2', 'a', 's', 's']

random.randrange(start, stop[, step])

在指定范围内 (start, stop) 返回一个间隔为 step 的随机整数,step 为可选参数

>>> import random
>>> print(random.randrange(0, 10, 5))
5
>>> print(random.randrange(0, 11, 5))
10
>>> print(random.randrange(0, 10))
7

random.shuffle(x)

将序列 x 随机打乱位置

>>> a = [1, 2, 3, 4, 5]
>>> random.shuffle(a)
>>> a
[2, 5, 4, 1, 3]

random.triangular(low, high, mode)

返回三角形分布的随机数,返回的随机浮点数 N 满足 low <= N <= high,并且在这些边界之间指定 mode,low 和 high 默认值为 0 和 1,mode 参数默认为边界之间的中点,持续使用该函数,可以得到以 mode 为对称点的随机分布数据集(在图上体现为一个三角形分布)

>>> import random
>>> random.triangular()
0.3604089623206311
>>> random.triangular(0,10)
7.215758147092778
>>> random.triangular(0,10,15)
10.965963151355984

random.betavariate(alpha, beta)

求 Beta 分布,参数条件:alpha > 0,beta > 0,返回值介于 0 ~ 1 之间

>>> import random
>>> random.betavariate(4, 9)
0.13445358577865857

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】Dynamics 365中配置和使用文件夹级别的跟踪(folder-level tracking)

本人微信和易信公众号&#xff1a;微软动态CRM专家罗勇 &#xff0c;回复274或者20180630可方便获取本文&#xff0c;同时可以在第一间得到我发布的最新的博文信息&#xff0c;follow me&#xff01;我的网站是 www.luoyong.me 。 Dynamics 365与Office 365可以方便紧密的集成…

【Python 标准库学习】多种操作系统接口和常用路径操作库 — os 与 os.path

欢迎加入 Python 官方文档翻译团队&#xff1a;https://www.transifex.com/python-doc/ os 模块简介&#xff1a;主流操作系统有 Windows、UNIX、Mac OS 等&#xff0c;os 模块为多种操作系统的访问提供了相关功能的支持&#xff0c;涉及对文件相关操作功能的实现、系统访问 Pa…

【转】Dynamics 365Online 如何启用手机端APP的离线功能

隐约记得365自带的手机app是支持离线功能的&#xff0c;但实际尝试后发现不行&#xff0c;断开网络后直接提示下图这样&#xff0c;无法操作了 然后就去查询了下最新版的Online设置离线的方式&#xff0c;步骤还挺多的&#xff0c;本篇即来分享下 第一步&#xff0c;首先要确定…

【Python 标准库学习】系统相关的参数和函数库 — sys

欢迎加入 Python 官方文档翻译团队&#xff1a;https://www.transifex.com/python-doc/ sys 模块提供了与 Python 解释器紧密相关的一些变量和函数&#xff0c;这些变量可能被解释器使用&#xff0c;也可能由解释器提供 sys 模块官方文档&#xff1a;https://docs.python.org/…

【转】Microsoft Teams快速上手系列-01Teams的前世今生

说到Teams&#xff0c;这到底是一个什么产品&#xff1f;有人说它是团队协作工具&#xff0c;有人说它是云视频系统&#xff0c;有人说它是Hub&#xff0c;还有人说它是微软有史以来发展最快的一个产品&#xff0c;还有人说它完全是一个高效办公神器。其实都是对的。 Teams集成…

【Python 标准库学习】时间相关的函数库 — time

欢迎加入 Python 官方文档翻译团队&#xff1a;https://www.transifex.com/python-doc/ time 模块提供了各种时间相关的函数&#xff0c;该模块中的大多数函数是调用了所在平台 C 语言库的同名函数&#xff0c;这些函数的语义因平台而异&#xff0c;可能会在不同的平台有不同的…

【转】响应式详解

一两年以前&#xff0c;我发现&#xff0c;很多人都被响应式搞得很懵逼。 现在&#xff0c;我依然发现&#xff0c;还是有很多人&#xff0c;依旧被响应式搞得很懵逼。 所以&#xff0c;我也很懵逼。 到底是哪个环节出了问题&#xff0c;让这么多学习前端的同学对于这个响应…

【Python 标准库学习】容器数据类型库 — collections

欢迎加入 Python 官方文档翻译团队&#xff1a;https://www.transifex.com/python-doc/ collections 模块实现了特定目标的容器&#xff0c;以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。 collections 模块官方文档&#xff1a;https://docs.python.or…

【Python 标准库学习】安全哈希与摘要算法库 — hashlib

欢迎加入 Python 官方文档翻译团队&#xff1a;https://www.transifex.com/python-doc/ hashlib 模块针对不同的安全哈希和消息摘要算法实现了一个通用的接口。提供了常见的摘要算法&#xff0c;如MD5&#xff0c;SHA1等等。 摘要算法又称哈希算法、散列算法&#xff0c;摘要算…

【Python 必会技巧】[i for i in range(1,10)] — 列表解析式,列表中使用 for 循环

经常会看到类似于 [i for i in range(1,10)] 的表达式&#xff0c;这种表达式称为列表解析&#xff08;List Comprehensions&#xff09;&#xff0c;类似的还有字典解析、集合解析等等。 列表解析式是将一个列表&#xff08;实际上适用于任何可迭代对象&#xff09;转换成另一…

【转】Microsoft Teams 常见问题

作者&#xff1a;Zimu 链接&#xff1a;https://www.zhihu.com/question/52246335/answer/244877022 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 功能还是很全的&#xff0c;能和skype、onedrive、yammer、shar…

Python 数据分析三剑客之 NumPy(一):理解 NumPy / 数组基础

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Asp.net的生命周期之应用程序生命周期

参考&#xff1a;http://msdn.microsoft.com/zh-cn/library/ms178473(vvs.100).aspx 参考&#xff1a;http://www.cnblogs.com/JimmyZhang/archive/2007/09/04/880967.html Http请求刚刚到达服务器的时候 当服务器接收到一个 Http请求的时候&#xff0c;IIS &#xff08;Int…

Python 数据分析三剑客之 NumPy(二):数组索引 / 切片 / 广播 / 拼接 / 分割

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Asp.net的生命周期应用之IHttpModule和IHttpHandler

引言 Http 请求处理流程 和 Http Handler 介绍 这两篇文章里&#xff0c;我们首先了解了Http请求在服务器端的处理流程&#xff0c;随后我们知道Http请求最终会由实现了IHttpHandler接口的类进行处理(应该记得Page类实现了IHttpHandler)。从 Http 请求处理流程 一文的最后的一…

【转】静态类与非静态类

静态类 继承&#xff08;多态&#xff09;、静态本身就是相反的。另外需要知道属性、事件其实是些特殊的方法。 使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。 static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数&#xff0c;但不能用于索…

Python 数据分析三剑客之 NumPy(三):数组的迭代与位运算

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Python 数据分析三剑客之 NumPy(四):字符串函数总结与对比

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Microsoft Teams快速上手系列-02Teams组成概述及使用分享

在上一篇博客中介绍了Teams的前世今生&#xff0c;大家对Teams已经有了一个初步的认识&#xff0c;但是如上一篇文章中所说Teams是一个集成度很高的云协作平台&#xff0c;具体应该怎么去有效的利用起来呢&#xff1f;接下来这篇博客给大家全方位的分享一下Teams的组成部分以及…