对数正态分布(对数正态分布是左偏态分布)
对数正态分布(对数正态分布是左偏态分布)前言
在实际的开发中,经常会用到随机数生成。而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))
运行之后,效果如下:
其他函数感兴趣的可以自行研究。
域名解析后多久生效(怎样查询域名解析是否正确)什么是域名解析,简单的说域名解析就是把域名和服务器IP地址绑定在一起。只有做了域名解析,浏览器输入你的域名才能访问到你的网站内容。可以说域名解析是网站建设过程中非常重要的一步,解析
艾滋病多久会传染(艾滋病身上会长什么)摘要一个窗口期的感染者一滴血中病毒含量平均是潜伏期感染者的100倍到1000倍,传染性就是潜伏期感染者的1001000倍。知道窗口期内的感染者传染性最强吗?一个窗口期的感染者一滴血
练哑铃多久(哑铃每天练30分钟多久出效果)关于健身时长的问题,我个人一般都是控制在3040分钟内(包括热身和简单的拉伸)。有些人说时间太短,三四十分钟还不够他洗个澡的时间久。还有的人年轻气盛(不气盛叫年轻人吗?),血气方刚
蛋糕的保质期是多久(生日蛋糕能存放多久)文咖啡小芝士先让大家思考个问题你觉得咖啡店卖的蛋糕保质期有几天?前阵子有消费者在上海浦东机场一家咖啡店买的蛋糕吃出了活蛆!会蠕动的那种!咱就不说这家店的品牌是Costa了。cost
全切双眼皮恢复多久(全切恢复时间多久)在双眼皮手术中,切开法是被大家公认的恢复比较慢的一种手术方式。相对于埋线和三点,切开法创伤较大,手术时间长,并且有瘢痕形成,因此消肿的时间相对较长,瘢痕也需要一段较长的时间恢复。但
打印机什么牌子好(最适合家用的打印机)在我们挑选打印机时,抛开性能参数,价格可以说是我们首先要考虑的因素。对于很多家庭用户来说不想花费过多的成本在购买打印机上,那么有没有一款打印机价格便宜且能满足家庭用户的打印需求呢?
普通百姓嫖娼怎么处罚(治安处罚)据平安北京朝阳消息,近日,朝阳公安分局接群众举报称,有人在朝阳某小区卖淫嫖娼。对此,警方依法开展调查,将卖淫违法人员陈某卉(女,29岁),嫖娼违法人员李某迪(男,39岁)查获。经审
电视机和投影仪哪个好用(目前最好的家用投影仪)那么,装修时,我们应该选电视机还是投影仪呢?下面小能手就从6个维度对比,看完不再纠结尺寸对比市面上彩电最大的尺寸大概在120英寸,想要追求家庭影院效果,那还差点意思。而且80120
怎么破解微信朋友圈半年(微信朋友圈限制怎么破解)那么接下来的这招可能会帮到你。3)内容分多次复制如果文字比较长,将大段文字分为多次复制,注意每次复制粘贴的字数不超过字数限制。保险起见,可以按照以下步骤操作第一步把大段文字复制粘贴
女装货源哪里好又便宜(女装批发网)产品是卡住新手卖家的第一关,选好了产品能助力你的店铺起步速度。而产品的品质又决定了你店铺能不能做得长久。不少想要开店的新手,都发愁去哪找到靠谱的货源。还是简单直接粗暴地开始吧。11
欧诗漫洗面奶适合年龄(50多岁用欧诗漫哪一款)说到洗面奶,其实现在外国的真的还没有国产的好用,因为洗面奶一种是皂基,就是和肥皂一样的性质的,现在用的少了。还有一种就是氨基酸的,洗的干净不油腻,温和不刺激,所以现在都是用氨基酸的
固话话费查询(固定电话怎么查询欠费)固话话费查询(固定电话怎么查询欠费)202008051932中老年智能生活温馨提示文末含有音频内容,是对本文的语音朗读,视力不佳的读者,可直接收听大家好,欢迎您点开教会他们中老年智
福州房价为什么这么高(福州买房首付3万够吗)这十多年福州房价基本上都排在全国房价前十之内,比重庆成都武汉长沙郑州苏州西安等这些新一线城市还要贵,比福建省GDP二十多年排全省第一的泉州还要贵两倍多。小编觉得,福州房价之所以这么
会计与审计专业介绍(审计学专业课程有哪些)会计与审计专业介绍(审计学专业课程有哪些)专业和会计专业外行眼中是同一种专业,在大家看来,会计行业都有很广阔的发展方向,但是审计就不一样了,大家都不太了解审计专业的学生到底毕业后能
人字加一笔是什么字(人字加一笔你能写出几个?)人字加一笔是什么字(人字加一笔你能写出几个?)汉字,又称中文字中国字方块字,是汉语的记录符号,属于表意文字的词素音节文字。世界上最古老的文字之一,已有六千多年的历史。汉字主要有象形
什么动物冬眠(冬眠的小动物有哪些动物)什么动物冬眠(冬眠的小动物有哪些动物)大千世界,无奇不有。自然界中物种繁多,共同组成了地球这个大家庭。每种动物都有自己的习性,冬眠就是一些动物的一些习性。冬眠是一些动物在冬季时对外
哪些动物要冬眠(哪些动物会冬眠100种)哪些动物要冬眠(哪些动物会冬眠100种)每当天气低于15摄氏度时,蛇类就会开始准备冬眠,在冬眠期间蛇会一动不动,即使将它们最喜欢的食物放到它们跟前,它们也很少会进食。而且,此时的蛇
哪些动物要冬眠(哪些动物会冬眠100种)哪些动物要冬眠(哪些动物会冬眠100种)冬眠是生物进化的一种特殊生存状态,蛇,青蛙,蜥蜴等爬行动物都会冬眠,熊类动物也会冬眠。但爬行动物和哺乳动物的冬眠是不一样的。蛇的冬眠,是以放
为什么叫台风(台风一词的由来)为什么叫台风(台风一词的由来)台风是每年都会发生的灾害性天气,它本身属于一种热带气旋,每年大约有10次台风光临我国,如今台风利奇马正在我国东部沿海地区肆虐,登陆时风力高达16级,其
dnf蓝色陨石(地下城黑色陨石有什么用)dnf蓝色陨石(地下城黑色陨石有什么用)地下城与勇士将在2月1日进行版本大更新,大家期待已经的起源版本将会如约而至,当初那些大家怀念的副本NPC背景音乐等都将回归,延续经典,创新不
陨石是什么(陨石有什么作用和功效)陨石是什么(陨石有什么作用和功效)氣印及熔壳1现在市面上出现了陨石热,很多人都梦未以求的在寻找陨石,想以有一块陨石而荣而富。2根据这一心里需求,使得陨石市场升温不减,整个市场鱼龙混
什么是陨石(陨石是什么样子的)什么是陨石(陨石是什么样子的)陨石,本质上就是一种来自于宇宙空间的石头,从外观上看起来,它与地球上的石头似乎并不存在太大的差异,甚至在构成成分上也没有什么特别。根据陨石内部物质构成