c# 从一组数中随机抽取一定个数_Python随机模块22个函数详解

99d0492d24dcc0a95794f3c326d5c3c1.png

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。平时数据分析各种分布的数据构造也会用到。

random模块,用于生成伪随机数,之所以称之为伪随机数,是因为真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,对于正常随机而言,会出现某个事情出现多次的情况。

但是伪随机,在事情触发前设定好,就是这个十个事件各发生一次,只不过顺序不同而已。现在MP3的随机列表就是用的伪随机,把要播放的歌曲打乱顺序,生成一个随机列表而已,每个歌曲都播放一次。真实随机的话,会有出现某首歌多放次的情况,歌曲基数越多,重放的概率越大。

注意:random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

#加载所需要的包import random import matplotlib.pyplot as pltimport seaborn as sns
#加载所需要的包import random import matplotlib.pyplot as pltimport seaborn as sns

01 random

描述:random.random() 用于生成一个0到1的随机符点数: 0 <= n < 1.0

语法:random.random()

L = [0,1,2,3,4,5]random.choice(L)2L = 'wofeichangshuai'random.choice(L)'h'

02 choice

描述:从非空序列seq中随机选取一个元素。如果seq为空则弹出 IndexError异常。

语法:random.choice( seq)seq 可以是一个列表,元组或字符串。

L = [0,1,2,3,4,5]random.choice(L)2L = 'wofeichangshuai'random.choice(L)'h'

03 choices

描述:从集群中随机选取k次数据,返回一个列表,可以设置权重。

注意每次选取都不会影响原序列,每一次选取都是基于原序列。

语法:random.choices(population,weights=None,*,cum_weights=None,k=1)

参数:

  • population:集群。
  • weights:相对权重。
  • cum_weights:累加权重。
  • k:选取次数。
random.getrandbits(10)379

04 getrandbits

描述:返回一个不大于K位的Python整数(十进制),比如k=10,则结果在0~2^10之间的整数。

语法:random.getrandbits(k)

random.getrandbits(10)379

05 getstate

描述:返回一个捕获到的 生成器当前内部状态 的对象,可以将此对象传递给 setstate() 以恢复到这个状态。

语法:random.getstate()

06 setstate

描述:state 应该是从之前调用 getstate() 获得的,而 setstate() 将生成器的内部状态恢复到调用 getstate() 时的状态。根据下面的例子可以看出,由于生成器内部状态相同时会生成相同的下一个随机数,我们可以使用 getstate() 和 setstate() 对生成器内部状态进行获取和重置到某一状态下。

语法:random.setstate(state)

state = random.getstate()random.random()0.489148634943​random.random()0.22359638172661822​random.setstate(state)random.random()0.48914863494​

07 randint

描述:用于生成一个指定范围内的整数。

语法:random.randint(a, b),其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

random.randint(1, 8)3random.randint(1, 8)4

08 randrange

描述:按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数,random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。

语法:random.randrange([start], stop[, step])

  • 不指定step,随机生成[a,b)范围内一个整数。
  • 指定step,step作为步长会进一步限制[a,b)的范围,比如randrange(0,11,2)意即生成[0,11)范围内的随机偶数。
  • 不指定a,则默认从0开始。
#不限制[random.randrange(0,11) for i in range(5)][4, 6, 3, 9, 5]​#随机偶数,运行5个数[random.randrange(0,11,2) for i in range(5)][2, 4, 8, 8, 6]

09 sample

描述:从population样本或集合中随机抽取K个不重复的元素形成新的序列。常用于不重复的随机抽样。返回的是一个新的序列,不会破坏原有序列。要从一个整数区间随机抽取一定数量的整数,请使用sample(range(1000000), k=60)类似的方法,这非常有效和节省空间。如果k大于population的长度,则弹出ValueError异常。

语法:random.sample(population, k)

注意:与random.choices()的区别:一个是选取k次,一个是选取k个,选取k次的相当于选取后又放回,选取k个则选取后不放回。故random.sample()的k值不能超出集群的元素个数。

random.sample(range(1000), k=5)[82, 678, 664, 177, 376]​L = [0,1,2,3,4,5]random.sample(L,3)[5, 3, 1]​random.sample(L,3)[2, 4, 5]

10 seed

描述:初始化伪随机数生成器。如果未提供a或者a=None,则使用系统时间为种子。如果a是一个整数,则作为种子。伪随机数生成模块。如果不提供 seed,默认使用系统时间。使用相同的 seed,可以获得完全相同的随机数序列,常用于算法改进测试。

语法:random.seed(a=None, version=2)

a = random.Random()a.seed(1)[a.randint(1, 100) for i in range(20)][14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 44, 77, 1, 45, 73, 23, 95, 91, 4]​b =random.Random()b.seed(1)[b.randint(1, 100) for i in range(20)][14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 44, 77, 1, 45, 73, 23, 95, 91, 4]

11 shuffle

描述:用于将一个列表中的元素打乱。只能针对可变的序列,对于不可变序列,请使用下面的sample()方法。

语法:random.shuffle(x)

L = [0,1,2,3,4,5]random.shuffle(L)L[5, 4, 1, 0, 3, 2]

12 uniform

描述:产生[a,b]范围内一个随机浮点数。uniform()的a,b参数不需要遵循a<=b的规则,即a小b大也可以,此时生成[b,a]范围内的随机浮点数。

语法:random.uniform(x, y)

random.uniform(10, 11)10.789198208817488

13 vonmisesvariate

描述:卡帕分布

语法:vonmisesvariate(mu, kappa)

data = [random.vonmisesvariate(2,2) for i in range(20000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

db35e701fc19c86f0f573997bea4e76c.png

密度图

a90f4e642556729dfef1e36549165e1f.png

14 triangular

描述:返回一个low <= N <=high的三角形分布的随机数。参数mode指明众数出现位置。

语法: random.triangular(low, high, mode)

data = [random.vonmisesvariate(2,2) for i in range(20000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

a2417129187080c17ba84ef5a2ec9aac.png

密度图无法显示

0def9f4b7e4d4098e095a1965a9c8a26.png

15 weibullvariate

描述:威布尔分布

语法:random.weibullvariate(alpha, beta)

data = [random.weibullvariate(1,2) for i in range(20000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)sns.kdeplot(data, shade=True,color="#FF0000")

直方图

cfd003c6ddcb332deabccce80ea07311.png

密度图

13aa7ef9653b1997835e0535726604d7.png

16 betavariate

描述: β分布

语法:random.betavariate(alpha, beta)

data = [random.expovariate(2) for i in range(50000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

ca1c4802bf77e9475b3eeb7eaa6ae365.png

密度图

0649b7412739037b0e1d35cb2e96330c.png

17 expovariate

描述:指数分布

语法:random.expovariate(lambd)

data = [random.expovariate(2) for i in range(50000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

467eb18998337f7c3b835fba228c70a5.png

密度图

7ed3974902a88ce6dc6800c37d84d3ff.png

18 gammavariate

描述: 伽马分布

语法:random.gammavariate(alpha, beta)

data = [random.gauss(2,2) for i in range(50000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

bf2afeb6449f33f2ae5efe6eed28f759.png

密度图

4bbebf82a37673f38b4bb9f5ec4dbca4.png

19 gauss

描述:高斯分布

语法:random.gauss(mu, sigma)

data = [random.gauss(2,2) for i in range(50000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

99d0492d24dcc0a95794f3c326d5c3c1.png

密度图

8a582f1d08d61f8ba6de3f058711b857.png

20 lognormvariate

描述:对数正态分布

语法:random.lognormvariate(mu, sigma)

示例:

data = [random.gauss(2,2) for i in range(50000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

8e925eb44829b690c67824f1dc02f27f.png

密度图

8b8946827deaa01d214cbd9f9114f9e6.png

21 normalvariate

描述: 正态分布

语法:random.normalvariate(mu, sigma)

data = [random.normalvariate(2,4) for i in range(20000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

980741bb3d61e02330caa7cdf0988925.png

密度图

9f0075208a0340e865137f164a80fd91.png

22 paretovariate

描述:帕累托分布

语法:random.paretovariate(alpha)

data = [random.paretovariate(4) for i in range(50000)]#直方图plt.hist(data, bins=100,  color="#FF0000", alpha=.7)#密度图sns.kdeplot(data, shade=True,color="#FF0000")

直方图

87ba302d1d62bd5530299cc9311886dc.png

密度图

515166604febeaebfbfed1755b705986.png

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

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

相关文章

读书人:人机融合中的深度态势感知

雅典学院&#xff08;拉斐尔&#xff09;来源&#xff1a;人机与认知实验室“你现在的气质里&#xff0c;藏着你走过的路&#xff0c;读过的书和爱过的人。"— 电影《卡萨布兰卡》里的一句话《追问人工智能》--刘伟 - 读书人视频如下&#xff1a;https://www.bilibili.com…

根据id 隐藏_明星ID价值四位数?吃鸡玩家崩溃:打工一个月工资还没名称值钱...

01你知道吗&#xff1f;和平精英游戏名称也很值钱&#xff1f;——最近&#xff0c;有这样一条消息出现在了我的面前&#xff0c;某和平精英角色明星名称的价格居然被捧到了千元之上&#xff0c;对&#xff0c;各位没有看错&#xff0c;虽然只是一个普普通通的游戏名称&#xf…

范式变革与规律涌现:世界科技发展新趋势

来源&#xff1a;学习时报新科技革命与产业变革持续展开&#xff0c;以人工智能为代表的新兴使能技术驶入“快车道”&#xff0c;世界科技创新被认为正在进入“认知革命”的阶段——对生命过程的“精微刻画与操作”和对人类智能的“逆向工程与强化”。趋势特征从“大停滞”迈向…

Unity5和WebGL移植指南的一些总结

对于手游开发者来说&#xff0c;更新版本往往意味着非常复杂的过程&#xff0c;你需要根据反馈做更新、测试、提交然后等待审核&#xff0c;而由于不需要客户端依赖&#xff0c;页游往往是快速测试游戏版本的最佳途径&#xff0c;很多人可能都知道Unity 5可以再不用Unity Web P…

java indexof方法_【3-14】Java中集合类list的增删改查

Hello&#xff0c;大家好&#xff0c;我是大家最亲爱的siki老师&#xff0c;每天都会在这里为大家带来一个Java语法中有趣的知识点&#xff0c;Q群175158287&#xff0c;欢迎同大家多多交流哈&#xff01;今天给大家带来的是Java中list类的使用&#xff0c;java.util 包提供了l…

清华大学孙富春教授:基于知识智能的机器人技能学习

来源&#xff1a;学术通在刚结束的2019中国人工智能产业年会分论坛——“知识智能及其产业应用论坛”上&#xff0c;清华大学计算机科学与技术系教授、中国人工智能学会副理事长、国家杰青孙富春教授发表了题为《基于知识智能的机器人技能学习》的报告。孙富春教授报告聚焦人工…

图书管理系统可行性分析报告范例_会做可行性分析报告贺州专家团队*金

金兰8564ertyu-03会做可行性分析报告贺州专家团队*金不满意全额&#xff0c;三年内免费提供修改服务&#xff0c;目前&#xff0c;金兰企划已为上万家客户及伙伴提供了专业、精准的商业策划服务&#xff0c;并得到了客户及行业的一致好评。会做可行性分析报告贺州专家团队*金金…

java开发项目实例_Alibaba内部出品Java突击手册,大量开发实战项目分享

前言Java作为目前最受欢迎的语言&#xff0c;每年都会有很多转行、跨行等等地人加入到开发大军中来&#xff0c;但是Java开发也是会遇到瓶颈的&#xff0c;当我们遇到瓶颈的时候就会去寻求发展突破&#xff0c;尤其是从Java开发高级工程师向架构师迈进的时候&#xff0c;需要大…

快递下单后取消订单_网约车定位地点不动,男子别的平台下单,没取消订单要付6.6元...

众所周知&#xff0c;在平台上网约车的时候&#xff0c;要是超出一定时间放鸽子&#xff0c;通常都是要扣除乘客部分钱&#xff0c;反之是司机取消了订单&#xff0c;平台同样会给司机处罚&#xff0c;在路程近的单子上&#xff0c;有些司机是接了后就不想跑&#xff0c;但是也…

5G概述和基本原理

来源&#xff1a;电子万花筒 未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&am…

以下选项中python用于异常处理结构_《Python 程序设计》复习题

目录 填空题 一、基础知识 二、序列 三、选择结构与循环结构和函数及面向对象、文件 选择题 一、Python 基础语法 二、基本数据类型 三、程序的控制结构 四、函数和代码复用 五、组合数据类型 六、面向对象&#xff1a; 七、文件 判断题 一、基础知识 二、序列 三、选择结构与循…

去掉边框_安卓也有堪比 VOUN 的加边框应用了,素材丰富到没朋友

iOS 系统中有一款可以给照片加边框的应用 VOUN&#xff0c;里面的相框档次很高&#xff0c;调整后的效果也很不错&#xff0c;但是安卓却没有一款类似的应用。开发者 Joey 尝试找了很多款相似的应用&#xff0c;结果不是广告就是骗流量的辣鸡应用&#xff0c;所以最后独自开发了…

物联网趋势下的边缘计算发展解析

来源&#xff1a;《NXP客栈》家居或商业应用&#xff0c;到互联车辆&#xff0c;边缘计算贯穿整个物联网。随着数据量的增加&#xff0c;这种计算需要具有最优网络安全功能与最高功能安全级别的强大互联边缘计算平台。创新通常成波出现&#xff08;图1&#xff09;。一些创新浪…

docker php 一键部署_Java开发提升十倍生产力:Idea远程一键部署springboot到Docker

IDEA是Java开发利器&#xff0c;springboot是Java生态中最流行的微服务框架&#xff0c;docker是时下最火的容器技术&#xff0c;那么它们结合在一起会产生什么化学反应呢&#xff1f;一、开发前准备1.Docker安装可以参考&#xff1a;https://docs.docker.com/install/2.配置do…

四个人过桥的题目_云南的几种“勾魂”特产,舌尖上的美味,让人回味无穷,你吃过吗...

云南&#xff0c;彩云之南&#xff0c;说到云南美食&#xff0c;大家可能第一反应都是“米线呀&#xff01;”害&#xff01;大云南的美食可多了&#xff0c;你可不能只知道这一个&#xff0c;号称花城的云南&#xff0c;这里的美食也是“遍地开花”。过桥米线一碗过桥米线&…

逐!帧!揭!秘!终于能看清波士顿动力机器人的细节了

来源&#xff1a;乾明&#xff1b;发自 凹非寺&#xff1b;量子位报道波士顿动力&#xff0c;逆天机器人的代名词。每一次新的视频放出&#xff0c;机器人做出各种充满视觉冲击力动作&#xff0c;都会引起疯狂传播。凭借敏捷的身姿和动物般的反应能力&#xff0c;它们做出了各种…

数学建模matlab画图操作大全

数学建模matlab画图操作大全 1.画图及一些基本设置 clear%清空工作区 clc%清空命令行窗口 close all%关闭所有图窗 x-40:0.1:40 f(x) x.^2-110;%函数句柄 x0fzero(f,15)%找15附近的零点 x0fminsearch(f,-11)%找-11附近的最小值%% 画图及其基本操作 %画图&#xff0c;默认格式…

python语言的产生_Python生成器是什么(超级详细)

之前我们讨论了高效的推导式。通过推导式&#xff0c;我们可以直接创建一个列表、字典或集合。但是&#xff0c;由于受到内存的限制&#xff0c;这些可迭代对象&#xff08;列表、字典或集合&#xff09;的容量是有限的。 比如&#xff0c;创建一个包含 10 万个元素的列表&…

俄罗斯“木船”机器人系统将于2020年部署部队

来源&#xff1a;国防科技要闻据悉&#xff0c;俄罗斯地面部队已完成“木船”&#xff08;Kungas&#xff09;机器人系统样机的国家试验&#xff0c;将于2020年开始部署部队&#xff0c;用于作战试验。发展背景自2010年以来&#xff0c;俄罗斯机器人系统进入快速发展时期。2014…

线程停止继续_晓龙吊打面试官系列: 如何优雅的停止一个线程

一、什么时候我们需要中断一个线程在实际的开发中&#xff0c;有很多场景需要我们中断一个正在运行的线程&#xff0c;就比如&#xff1a;当我们使用抢票软件时&#xff0c;其中某一个通道已经抢到了火车票&#xff0c;这个时候我们就需要通知其他线程停止工作。当我们希望在一…