网站首页 > 技术文章 正文
一、random模块简介
Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。
要在Python中使用random模块,只需要Import就行
二、random模块函数(加粗的为常用函数)
random.seed(a=None, version=2) # 初始化伪随机数生成器。如果未提供a或者a=None,则使用系统时间为种子。如果a是一个整数,则作为种子。
random.getstate() # 返回一个当前生成器的内部状态的对象
random.setstate(state) # 传入一个先前利用getstate方法获得的状态对象,使得生成器恢复到这个状态。
random.getrandbits(k) # 返回range(0,2**k)之间的一个整数,相当于randrange(0,2**k)
random.randrange(stop) # 返回range(0,stop)之间的一个整数
random.randrange(start, stop[, step]) # 返回range[start,stop)之间的一个整数,可加step,跟range(0,10,2)类似
random.randint(a, b) # 返回range[a,b]之间的一个整数,等价于然的range(a,b+1)
random.choice(seq) # 从非空序列seq中随机选取一个元素。如果seq为空则弹出 IndexError异常。
random.choices(population, weights=None, *, cum_weights=None, k=1) # 3.6版本新增。从population集群中随机抽取K个元素(可重复)。weights是相对权重列表,cum_weights是累计权重,两个参数不能同时存在。
random.shuffle(x[, random]) # 随机打乱序列x内元素的排列顺序。只能针对可变的序列,对于不可变序列,请使用下面的sample()方法。
random.sample(population, k) # 从population样本或集合中随机抽取K个不重复的元素形成新的序列。常用于不重复的随机抽样。返回的是一个新的序列,不会破坏原有序列。要从一个整数区间随机抽取一定数量的整数,请使用sample(range(10000000), k=60)类似的方法,这非常有效和节省空间。如果k大于population的长度,则弹出ValueError异常。
random.random() # 返回一个介于左闭右开[0.0, 1.0)区间的浮点数
random.uniform(a, b) # 返回一个介于a和b之间的浮点数。如果a>b,则是b到a之间的浮点数。这里的a和b都有可能出现在结果中。
random.triangular(low, high, mode) # 返回一个low <= N <=high的三角形分布的随机数。参数mode指明众数出现位置。
random.betavariate(alpha, beta) # β分布。返回的结果在0~1之间
random.expovariate(lambd) # 指数分布
random.gammavariate(alpha, beta) # 伽玛分布
random.gauss(mu, sigma) # 高斯分布
random.lognormvariate(mu, sigma) # 对数正态分布
random.normalvariate(mu, sigma) # 正态分布
random.vonmisesvariate(mu, kappa) # 卡帕分布
random.paretovariate(alpha) # 帕累托分布
random.weibullvariate(alpha, beta) # 威布尔分布
三、random模块方法使用
>>> import random
>>> random.random()#随机生成[0.1)的浮点数
0.8652297719970958
>>> random.randint(1000, 9999)# 随机生成1000-9999之间的整数
5804
>>> random.randrange(1000)# 随机生成0-1000之间的整数
468
>>> random.randrange(20,1000,2)#随机生成2-1000之间的偶数
SyntaxError: invalid character in identifier
>>> random.randrange(20,1000,2)
892
>>> random.uniform(0, 20)# 随机生成0-20之间的浮点数
15.87726887991787
>>> #从序列中随机选择一个元素
>>> random.choice(['apple','pear','banana','orange'])
'banana'
>>> random.choice('abcdrtrtrtrtfdf')
'b'
>>> random.getrandbits(8)#返回range(0,2**8)之间的一个整数,相当于randrange(0,2**k)
22
>>> random.uniform(1,20)#返回一个介于a和b之间的浮点数。如果a>b,则是b到a之间的浮点数。这里的a和b都有可能出现在结果中。
11.358755171444706
>>> # 对列表元素随机排序
>>> list_number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> random.shuffle(list_number)
>>> list_number
[2, 9, 6, 4, 3, 5, 1, 8, 7]
>>> # 字符串对象是不可变对象,所以不能排序
>>> s = 'abcdefghijklmn'
>>> random.shuffle(s)
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
random.shuffle(s)
File "D:\Python\lib\random.py", line 276, in shuffle
x[i], x[j] = x[j], x[i]
TypeError: 'str' object does not support item assignment
>>> #从0-10000000整数集合中随机抽取60个不重复的元素形成新的序列。
>>> random.sample(range(10000000),k=60)
[2983349, 7093517, 8915286, 3478372, 9937118, 3419360, 4531987, 9295876, 9449989, 142671, 9667443, 5764505, 8966326, 7146975, 5632549, 147436, 4470903, 9893492, 3930802, 7473709, 595863, 4692927, 3143474, 3864229, 6361741, 2610849, 8124441, 6437125, 552870, 5516169, 7253043, 5268703, 5207281, 8539462, 8148407, 934218, 1146450, 547868, 2945959, 9307084, 1142094, 6909424, 9819703, 2184980, 8987789, 7674919, 8107778, 7395389, 3283308, 8341618, 3578819, 6648223, 3284818, 424632, 7260161, 4440014, 2208221, 1848044, 7427776, 650644]
>>> # 从指定序列中随机获取指定长度的片断
>>> random.sample('abcdefg', 2)
['g', 'b']
四、random模块案例演示
编写一个随机生成语句的程序,通过随机选取相应的冠词,主题词,动词以及状语,然后组合成一个句子,这个句子往往能够达到让人啼笑皆非的效果。请看具体演示。
五、总结
random函数是非常重要的函数模块,Python中任何与随机相关的问题,都可以首先考虑random模块,熟悉掌握其中的常用方法,是一个对程序员的最基本要求。
- 上一篇: 决策树算法能做什么?如何使用它完成鸢尾花的识别?交叉验证?
- 下一篇: 超参数和模型验证 超参数的定义
猜你喜欢
- 2024-10-11 sklearn分类模型汇总 sklearn svm分类
- 2024-10-11 一款小众但实用的自动化特征选择工具:AutoFeatSelect
- 2024-10-11 基于决策树算法完成鸢尾花的分类并使用scikit-learn进行交叉验证
- 2024-10-11 「程序员」如何5分钟掌握,pandas数据累计与分组?
- 2024-10-11 Python 机器学习 特征降维 python tsne降维
- 2024-10-11 mooc机器学习第七天-分类支持向量机svm.svc
- 2024-10-11 模型选择之交叉验证(简单交叉验证、S折交叉验证和留一交叉验证)
- 2024-10-11 I2C七宗罪之第二罪 七宗罪二哥
- 2024-10-11 PCA 主成分分析 PCA主成分分析实现鸢尾花数据集分类-MATLAB代码
- 2024-10-11 Python实现机器学习算法——随机森林
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)