对数正态分布(对数正态分布是左偏态分布)
对数正态分布(对数正态分布是左偏态分布)前言
在实际的开发中,经常会用到随机数生成。而random库专用于随机数的生成,它是基于Mersenne Twister算法提供了一个快速伪随机数生成器。
本篇,将详细讲解各种场景之下随机数的生成应用。生成随机数
对于随机数的生成,random库提供了很多函数,有的负责生成浮点数,有的负责生成整型,还有的可以生成区间内的随机数等。
函数名
参数
意义
random
无参数
随机生成[0-1]之间浮点数
uniform
2个整型参数:最小数,最大数
随机生成最小最大之间的浮点数
randint
2个整型参数:最小数,最大数
随机生成最小最大之间的整数
randrange
3个整型参数:最小数,最大数,步长
随机生成最小最大之间的间隔步长整数
下面,我们来看看这些常用的随机数生成函数的应用:importrandom#随机生成[0-1]之间浮点数print("%04.2f"%random.random()) #随机生成浮点数print("%04.2f"%random.uniform(100,200)) #随机生成整型print(random.randint(1,200)) #随机生成整型print(random.randrange(0,200,5))
运行之后,效果如下:
以上是最常用的,也是最普遍的随机数用法。种子
不知道读者发现没有,通过上面这些方法虽然能生成随机数,但是随机数都是无序的。这次你运行可能开头是一个数,结尾是一个数,下次运行开头和结尾又会不一样。这对于需要固定序列的随机数需求而言,显然不合适。
所以,random库给我们提供了种子函数:random.seed()。种子会控制由公式生成的第一个值,由于公式是确定的,所以每次只要种子相同,随机数每次生成的序列值就相同。importrandomrandom.seed(1) #随机生成浮点数print("%04.2f"%random.random()) #随机生成浮点数print("%04.2f"%random.uniform(100,200)) #随机生成整型print(random.randint(1,200)) #随机生成整型print(random.randrange(0,200,5))
多次运行上面这段代码,你会发现每次随机数都是一样的。
random.sample
博主经常编写刷评论的脚本,但是对于爬虫来说,有一个与众不同的随机数需求。比如,我要评论20个网页,那么将20个网页放在数组中,就会有(0,19)索引进行选择。如果用平常的区间随机数,那么可能会漏掉一些值,意味着也会漏掉一些网页没有评论。
这个时候,博主肯定期望生成一个(0,19)区间的随机数样本,且不重复。保证一个轮回评论完成之后,没有一个网页漏掉。那么这种需求用random库如何操作呢?
当然,小标题已经给出答案了,可以使用random.sample()函数:importrandomprint(random.sample(range(0,20),20))
运行之后,效果如下:
random.sample第1个参数是一个区间数组,比如随机数在(0,19),那么第1个参数就是range(0,19);第2个是生成多少不重复的随机数,这里需要全部网页都能评论到,所以生成20个随机数。可以看到上面所有随机数都不重复,且都在区间而且唯一。(该函数还可以用于扑克牌的发放,感兴趣的读者,可以自己写写代码熟练掌握)随机元素
在概率统计中,我们经常使用随机数进行预测概率,比如一枚硬币正面朝上的概率是多少等等。这种求概率的随机元素操作,如果通过随机数实现呢?
答案是random.choice()函数,它可以从一个序列中随机选择元素。比如这里我们来抛硬币10000次,看看各面朝上的概率是多少。具体代码如下:importrandom coin_pro={'heads':0,'tails':0, } coin=['heads','tails']foriinrange(10000): coin_pro[random.choice(coin)]+=1print("正面朝上次数:",coin_pro['heads'])print("反面朝上次数:",coin_pro['tails'])
运行之后,我们会得到次数,从而也可以计算概率。
SystemRandom
random库下还有一个SystemRandom类,该类产生的系列是不可再生的,因为其随机性跟随系统,而不是来自软件自身。
我们先来看一段代码:importrandomimporttimer1=random.SystemRandom()print(r1.random()) seed=time.time() r1=random.SystemRandom(seed)print(r1.random())
运行之后,效果如下:
你可以简单地把SystemRandom理解为该随机数的生成因子是系统时间,根据系统时间因子生成的随机数。(只是做一个类比),也就是上面seed因子根本不起作用,它只用系统的随机种子。非均匀分布
使用numpy库的读者,应该会经常用到该库生成一些正态分布的值。同样的,random随机数库也提供了这些分布的函数用于进行科学计算的应用。下面,我们来分别讲解这些随机数如何生成。
函数
意义
betavariate()
根据Beta分布返回一个介于0和1之间的随机浮点数(用于统计信息)
expovariate()
根据指数分布(用于统计信息),返回一个介于0和1之间或如果介于0和-1之间的随机浮点数(如果参数为负)
gammavariate()
根据Gamma分布返回一个介于0和1之间的随机浮点数(用于统计信息)
gauss()
根据高斯分布(在概率论中使用)返回介于0和1之间的随机浮点数
lognormvariate()
根据对数正态分布(用于概率论),返回介于0和1之间的随机浮点数
normalvariate()
根据正态分布(在概率论中使用)返回介于0和1之间的随机浮点数
vonmisesvariate()
根据von Mises分布返回0到1之间的一个随机浮点数(用于定向统计)
paretovariate()
根据帕累托分布(在概率论中使用)返回介于0和1之间的随机浮点数
weibullvariate()
根据Weibull分布返回0到1之间的随机浮点数(用于统计信息)正态分布
random库中提供了函数normalvariate()和gauss()生成正态分布随机数(高斯分布)。当然还有一个函数lognormvariate()也可以生成正态分布,不过它生成的正态分布适用于多个不交互随机变量的积。importrandomforiinrange(2):print(random.normalvariate(0,1))foriinrange(2):print(random.gauss(0,1))
运行之后,效果如下:
以上都有2个参数:平均值与协方差。平均值是N维空间中的一个坐标,表示样本最有可能产生的位置。这类似于一维或单变量正态分布的钟形曲线的峰值。协方差表示两个变量一起变化的水平。近似分布
三角分布(triangular distribution),亦称辛普森分布或三角形分布。在概率论与统计学中,三角形分布是低限为a、众数为c、上限为b的连续概率分布。
triangular()方法返回两个指定数字(包括两者)之间的随机浮点数,但是您也可以指定第三个参数,即mode 参数。mode参数使您有机会权衡可能的结果,使其更接近其他两个参数值之一。mode参数默认为其他两个参数值之间的中点,它将不会权衡任何方向的可能结果。importrandomprint(random.triangular(20,60,30))
运行之后,效果如下:
其他函数感兴趣的可以自行研究。
儿童票网上怎么买(儿童票怎么网上订票)儿童票网上怎么买(儿童票怎么网上订票)T之家201907291153IT之家7月29日消息放暑假了,很多家长都选择这个时期带孩子出游,然而在购票环节却卡壳了。究竟儿童票该如何买呢?
清明免过路费吗(2021年端午节高速免费吗?)清明免过路费吗(2021年端午节高速免费吗?)2021年清明节的放假时间为4月3日(星期六)至5日(星期一),共三天。那么今年清明节高速免费吗?清明免过路费免几天?下面小编给大家介
盖章申请(印章使用申请表)盖章申请(印章使用申请表)传统律所用章管理是个老大难,要么乱用章风险不可控,要么管理严,用章效率低下,而且律师往往在外办案,用章还得专程返回律所,时间成本开销很大,如果还需要等待手
盖章申请(印章使用申请表)盖章申请(印章使用申请表)传统律所用章管理是个老大难,要么乱用章风险不可控,要么管理严,用章效率低下,而且律师往往在外办案,用章还得专程返回律所,时间成本开销很大,如果还需要等待手
剧本的写法(写剧本的方法步骤)剧本的写法(写剧本的方法步骤)本格式人物设置202107221753莊老先生丶剧本营课程回顾这几次课里,我们带大家欣赏了几部片子,对影片的各种情节设置角色设置等问题进行了详细的解说
二维码墓碑(成都墓碑制作厂家)二维码墓碑(成都墓碑制作厂家)2143大参考据每日邮报消息,俄罗斯乌法市近日出现了一块iPhone墓碑。墓里埋葬着一个因车祸去世的25岁姑娘RitaShameeva,悲伤的父亲给女
结婚请柬格式(结婚请柬格式样本)结婚请柬格式(结婚请柬格式样本)结婚喜帖又称为结婚请帖或者结婚请柬,写结婚喜帖,我们通常要知道几个内容,就是一定要有结婚礼日期(最好说明星期几)婚宴的地点和邀请人等。写结婚请柬之前
新闻的写法(新闻的写法范文)新闻的写法(新闻的写法范文)社会新闻大多以民生民情民意为报道主题,充满很强的亲和力感染力和人文关怀,一篇洋溢着浓郁人情味充满吸引力的社会新闻报道,可以在最大程度上激发受众的情感共鸣
抄送什么意思(什么叫抄送)抄送什么意思(什么叫抄送)老外朋友圈里常见的DM到底什么意思?一篇文章为你总结网络黑话原创202106031039新航道官方号前几天我带着大家总结了外网上常见的标签,大家还记得有哪
消防车道宽度(消防车道要求)消防车道宽度(消防车道要求)根据我国建筑设计防火规范标准,消防车道的净高度和净宽度均不应小于4米,转弯半径应符合有关要求,一般来说普通消防车的转弯半径大于或等于9米,登高车大于或等
什么是路肩(硬路肩是应急车道吗)什么是路肩(硬路肩是应急车道吗)(1)路肩的作用路肩是位于行车道外缘至路基边缘具有一定宽度的带状结构部分,包括硬路肩和土路肩。路肩的主要作用有保护行车道等主要结构的稳定为发生机械故
科普下频率和概率的区别与联系关于到现在频率和概率的区别与联系这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道频率和概率的区别与联系小编也是到网上收集了一些与
什么是软水(什么叫软水,什么叫硬水)什么是软水(什么叫软水,什么叫硬水)随着国内生活水平的提高,硬水软水这两个词汇越来越多地出现在公众媒体当中,那么硬水和软水到底是什么?该怎样区分?众所周知,水是一种良好的溶剂,在日
软水和硬水(检验硬水和软水)软水和硬水(检验硬水和软水)随着国内生活水平的提高,硬水软水这两个词汇越来越多地出现在公众媒体当中,那么硬水和软水到底是什么?该怎样区分?众所周知,水是一种良好的溶剂,在日常生活中
科普下硝酸光照分解反应方程式及实验现象关于到现在硝酸光照分解反应方程式及实验现象这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道硝酸光照分解反应方程式及实验现象
科普下动能和势能的区别动能和势能怎么相互转换关于到现在科普下动能和势能的区别动能和势能怎么相互转换这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道科普下动能和势能的区
科普下动能和势能的区别动能和势能怎么相互转换关于到现在动能和势能的区别动能和势能怎么相互转换这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道动能和势能的区别动能和势能
科普下什么叫动能功能和势能之间的相互转化关于到现在什么叫动能功能和势能之间的相互转化这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道什么叫动能功能和势能之间的相互转化小
科普下动量定理是什么动量定理的定义关于到现在动量定理是什么动量定理的定义这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道动量定理是什么动量定理的定义,小编也
科普下动量的定义是什么动量的概念关于到现在动量的定义是什么动量的概念这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道动量的定义是什么动量的概念,小编也是到
科普下动量守恒定律是什么动量的公式如何表达关于到现在动量守恒定律是什么动量的公式如何表达这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道动量守恒定律是什么动量的公式
科普下动量与动能的关系关于到现在动量与动能的关系这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道动量与动能的关系,小编也是到网上收集了一些与动量