python产生随机数random.random_Python内置random模块生成随机数的方法

本文我们详细地介绍下两个模块关于生成随机序列的其他使用方法。

随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等。Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入random模块。

import random

下面介绍下Python内置的random模块的几种生成随机数的方法。

1、random.random()随机生成 0 到 1 之间的浮点数[0.0, 1.0)。注意的是返回的随机数可能会是 0 但不可能为 1,即左闭右开的区间。

print("random: ", random.random())

#random: 0.5714025946899135

2、random.randint(a , b)随机生成 a 与 b 之间的整数[a, b],a<=n<=b,随机整数不包含 b 时[a, b)可以使用 random.randrange() 方法。

print("randint: ", random.randint(6,8))

#randint: 8

3、random.randrange(start,stop,step)按步长step随机在上下限范围内取一个随机数,start<=n

print("randrange: ",random.randrange(20,100,5))

#randrange: 85

4、random.uniform(a, b)随机生成 a 与 b 之间的浮点数[a, b],a<=n<=b。

print("uniform: ",random.uniform(5,10))

#uniform: 5.119790163375776

5、random.choice()从列表中随机取出一个元素,比如列表、元祖、字符串等。注意的是,该方法需要参数非空,否则会抛出 IndexError 的错误。

print("choice: ",random.choice("www.yuanxiao.net"))

#choice: y

6、random.shuffle(items) 把列表 items 中的元素随机打乱。注意的是,如果不想修改原来的列表,可以使用 copy 模块先拷贝一份原来的列表。

num = [1, 2, 3, 4, 5]

random.shuffle(num)

print("shuffle: ",num)

#shuffle: [1, 3, 5, 4, 2]

7、random.sample(items, n)从列表 items 中随机取出 n 个元素。

num = [1, 2, 3, 4, 5]

print("sample: ",random.sample(num, 3))

#sample: [4, 1, 5]

Python 的random模块产生的随机数其实是伪随机数,依赖于特殊算法和指定不确定因素(种子seed)来实现。如randint方法生成一定范围内的随机数,会先指定一个特定的seed,将seed通过特定的随机数产生算法,得到一定范围内随机分布的随机数。因此对于同一个seed值的输入产生的随机数会相同,省略参数则意味着使用当前系统时间秒数作为种子值,达到每次运行产生的随机数都不一样。

random.seed(2)

print("random: ", random.random())

#random: 0.9560342718892494

random.seed(3)

print("random: ", random.random())

#random: 0.23796462709189137

random.seed(3)#同一个种子值,产生的随机数相同

print("random: ", random.random())

#random: 0.23796462709189137

numpy库也提供了random模块,用于生成多维度数组形式的随机数。使用时需要导入numpy库。

import numpy as np

下面介绍下numpy库的random模块的几种生成随机数的方法。

1、numpy.random.rand(d0,d1,…,dn)

rand函数根据给定维度生成[0,1]之间的数据,包含0,不包含1

dn表格每个维度

返回值为指定维度的array

print("np.random.rand:\n {}".format(np.random.rand(4,2)))

# shape: 4*3

"""

np.random.rand:

[[0.5488135 0.71518937]

[0.60276338 0.54488318]

[0.4236548 0.64589411]

[0.43758721 0.891773 ]]

"""

print("np.random.rand:\n {}".format(np.random.rand(4,3,2)))

# shape: 4*3*2

"""

np.random.rand:

[[[0.96366276 0.38344152]

[0.79172504 0.52889492]

[0.56804456 0.92559664]]

[[0.07103606 0.0871293 ]

[0.0202184 0.83261985]

[0.77815675 0.87001215]]

[[0.97861834 0.79915856]

[0.46147936 0.78052918]

[0.11827443 0.63992102]]

[[0.14335329 0.94466892]

[0.52184832 0.41466194]

[0.26455561 0.77423369]]]

"""

2、numpy.random.randn(d0,d1,…,dn)

randn函数返回一个或一组样本,具有标准正态分布。

dn表格每个维度

返回值为指定维度的array

标准正态分布—-standard normal distribution

标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。

print("np.random.randn:\n {}".format(np.random.randn()))

# 当没有参数时,返回单个数据

"""

np.random.randn:

2.2697546239876076

"""

print("np.random.randn:\n {}".format(np.random.randn(2,4)))

"""

np.random.randn:

[[-1.45436567 0.04575852 -0.18718385 1.53277921]

[ 1.46935877 0.15494743 0.37816252 -0.88778575]]

"""

print("np.random.randn:\n {}".format(np.random.randn(4,3,2)))

"""

np.random.randn:

[[[-1.98079647 -0.34791215]

[ 0.15634897 1.23029068]

[ 1.20237985 -0.38732682]]

[[-0.30230275 -1.04855297]

[-1.42001794 -1.70627019]

[ 1.9507754 -0.50965218]]

[[-0.4380743 -1.25279536]

[ 0.77749036 -1.61389785]

[-0.21274028 -0.89546656]]

[[ 0.3869025 -0.51080514]

[-1.18063218 -0.02818223]

[ 0.42833187 0.06651722]]]

"""

3、numpy.random.randint(low, high=None, size=None, dtype='l')

返回随机整数,范围区间为[low,high),包含low,不包含high

参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int

high没有填写时,默认生成随机数的范围是[0,low]

print("np.random.randint:\n {}".format(np.random.randint(1,size=5)))

# 返回[0,1)之间的整数,所以只有0

"""

np.random.randint:

[0 0 0 0 0]

"""

print("np.random.randint:\n {}".format(np.random.randint(1,5)))# 返回1个[1,5)时间的随机整数

"""

np.random.randint:

2

"""

print("np.random.randint:\n {}".format(np.random.randint(-5,5,size=(2,2))))

"""

np.random.randint:

[[-5 -3]

[ 2 -3]]

"""

4、numpy.random.seed()

np.random.seed()的作用:使得随机数据可预测。

当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

总结

以上所述是小编给大家介绍的Python内置random模块生成随机数的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本文标题: Python内置random模块生成随机数的方法

本文地址: http://www.cppcns.com/jiaoben/python/261243.html

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

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

相关文章

数据仓库—stg层_数据仓库之Hive快速入门 - 离线实时数仓架构

数据仓库VS数据库数据仓库的定义:数据仓库是将多个数据源的数据经过ETL(Extract(抽取)、Transform(转换)、Load(加载))理之后&#xff0c;按照一定的主题集成起来提供决策支持和联机分析应用的结构化数据环境数据仓库VS数据库&#xff1a;数据库是面向事务的设计&#xff0c;数…

小数据量计算最大lyapunov代码_Software | 计算Lyapunov指数的GUI工具箱及函数包汇总...

二十年前读书时用过的Lyapunov Exponents Toolbox&#xff0c;推荐给做非线性动力学入门的同学们。那个时候不会编写程序&#xff0c;做分支图、算连续或者离散系统的Lyapunov指数&#xff0c;极其困难&#xff0c;还好有这个工具箱&#xff0c;慢慢看源程序学会写一点改进的程…

零基础学习C语言如何入门(内附工具书推荐+视频教程)

C语言同C、Python等都是通用性的编程语言&#xff0c;它们不针对某一个特定的方向&#xff0c;能做的事情很多。C语言主要用于底层开发&#xff0c;Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发&#xff0c;开发硬件驱动&#xff0c;让硬件和操作系统连接起来…

git 小乌龟 更新分支_git常用操作

Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布式版本库的方式&a…

web 服务器 内存 影响_C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出...

C/C服务器开发7大常用开源库&#xff0c;在这里简单介绍一下。1、OpenSSLOpenSSL是一个开放源代码的安全套接字层密码软件库&#xff0c;囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议&#xff0c;应用程序可以使用这个包来进行安全通信&#xff0c;避免窃听&…

pandas 更改单元格的值_懂Excel轻松入门Python数据分析包pandas(二十四):连续区域...

此系列文章收录在公众号中&#xff1a;数据大宇宙 > 数据处理 >E-pd转发本文并私信我"python"&#xff0c;即可获得Python资料以及更多系列文章(持续更新的)经常听别人说 Python 在数据领域有多厉害&#xff0c;结果学了很长时间&#xff0c;连数据处理都麻烦得…

opencv python轻松入门_OpenCV轻松入门 面向Python

章OPENCV入门1 1.1如何使用1 1.2图像处理基本操作3 1.2.1读取图像3 1.2.2显示图像5 1.2.3保存图像9 1.3OpenCV贡献库10 第2章图像处理基础11 2.1图像的基本表示方法11 2.2像素处理15 2.3使用numpy.array访问像素23 2.4感兴趣区域(ROI)29 2.5通道操作32 2.5.1通道拆分32 2.5.2通…

产生式是蕴含式_独栋别墅~下沉式庭院设计

遇见美. 发现美创造美. 成就美有趣、有情奢享生活.创艺空间设计项目概述&#xff1a;这是一套婚房&#xff0c;从设计到装修完毕&#xff0c;历经三年。这是一生幸福开启的地方。一层为会客厅、室内花园、餐厅、茶室、老人房。原始房屋整体空间不够方正&#xff0c;空间利用率低…

在前端中如何在表格中最后一行加入输入框_UI设计进阶干货 — 如何制定UI规范...

APP为何要制定设计规范作为UI设计师&#xff0c;整理设计规范也是设计能力的一种体现。但很多小公司的设计师都觉得, 整个公司只有自己一个设计师, 所有的设计稿都是自己一个人做的, 风格肯定都是统一的, 所以没必要花那么长时间去做一个没有用的东西。但其实规范的本身并不是只…

如何用三元组表表示下列稀疏矩阵_盘一盘 Python 系列特别篇21之:SciPy 稀疏矩阵...

引言和稠密矩阵相比&#xff0c;稀疏矩阵的最大好处就是节省大量的内存空间来储存零。稀疏矩阵本质上还是矩阵&#xff0c;只不过多数位置是空的&#xff0c;那么存储所有的 0 非常浪费。稀疏矩阵的存储机制有很多种 (列出常用的五种)&#xff1a;COO (Coordinate List Format)…

六西格玛dfss_向六西格玛质量水平进攻!

为提高设计质量&#xff0c;提升研发团队整体作战能力&#xff0c;2019年初&#xff0c;技术中心确定了大力推进先进质量管理方法DFSS(六西格玛设计)的工作目标。一年来&#xff0c;在DFSS小组的策划组织和通用黑带大师的倾力支持下 &#xff0c;技术中心各区域工程师积极地学习…

python多进程和多线程使用场景_Python36 多线程、多进程的使用场景

多线程与多进程的使用场景 io 操作不占用CPU&#xff08;从硬盘、从网络、从内存读数据都算io&#xff09; 计算占用CPU&#xff08;如11计算&#xff09; python中的线程是假线程&#xff0c;不同线程之间的切换是需要耗费资源的&#xff0c;因为需要存储线程的上下文&#xf…

c字符串中包含双引号_必须知道的C语言知识细节:单引号和双引号正确用法

C语言中ACSII码字符单引号和双引号"在程序中经常出现&#xff0c;很简单&#xff0c;但却是十分重要的语法标点符号&#xff0c;初学者容易混淆使用。单引号在字符常量时使用&#xff0c;表示单个字符。例如&#xff1a;char c;c a;c 1;c A;当在单引号中出现两个及以上…

计算机组成原理哈工大期末_浅谈计算机组成原理(三)

1、第二章&#xff1a;存储系统通过下面的思维导图来依次分享「存储系统」里面重要知识点。2、第一节&#xff1a;存储器的结构1. 主存储器&#xff1a;简称主存&#xff0c;又称内存储器(内存)&#xff0c;用来存放计算机运行期间所需的大量程序和数据&#xff0c;CPU可以直接…

常用的python测试脚本_详解Python的单元测试

如果你听说过“测试驱动开发”&#xff08;TDD&#xff1a;Test-Driven Development&#xff09;&#xff0c;单元测试就不陌生。 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。 比如对函数abs()&#xff0c;我们可以编写出以下几个测试用例&…

网页中竖的目录怎么改成横的_怎么学习手绘插画?小白也能入门哦

怎么学习手绘插画&#xff1f;小白也能入门哦&#xff01;在回答这个问题之前&#xff0c;我们先来认识一下什么插画&#xff1f;相信很多人对插画这个概念是很笼统的。插画在中国被人们俗称为插图。发展至今其应用范围很是广泛包括&#xff1b;出版物配图、卡通吉祥物、广告、…

python自动测试v_python下selenium自动化测试自我实践

周末实验自动化提交数据时&#xff0c;本来没打算写记录的&#xff0c;不过遇到一些问题&#xff0c;觉得可以提提。基本操作就不用写了&#xff0c;搜索过程中都发现了两个博客都出了seleniumpython的书&#xff0c;说明操作一搜一大把。 1. 等待页面加载完成 本来用的sleep()…

graphpad细胞增殖曲线_肿瘤干细胞?居然被这两个新加坡人轻松干掉了?

近日&#xff0c;著名医学期刊《自然•医学》上发表了一篇关于肿瘤干细胞的文章。来自新加坡的研究团队发现&#xff0c;人类非小细胞肺癌的肿瘤干细胞需要大量的蛋氨酸&#xff0c;以维持自身组蛋白的甲基化&#xff0c;这对于肿瘤干细胞的生长和致瘤作用至关重要。同时&#…

isight参数优化理论与实例详解_案例1(ISIGHT集成ADAMS CAR方法实现)

本文字数1304字25图&#xff0c;建议阅读时间7分钟强调一下是ISIGHT&#xff0c;不是INSIGHTINSIGHT是ADAMS内置的一个试验设计模块&#xff0c;它提供了一组统计工具&#xff0c;用于分析仿真结果&#xff0c;辅助优化和改进系统ISIGHT是功能强大的计算机辅助优化平台&#xf…

修改图片src_【学习园地】企业SRC搭建

xSRC-企业SRC搭建腾讯xSRC 开源版是腾讯安全应急响应中心(TSRC)面向合作伙伴推出的安全应急响应中心(SRC)建站软件&#xff0c;软件源代码开放&#xff0c;可支持合作伙伴轻松构建SRC平台&#xff0c;省去大量开发运维工作&#xff0c;并支持个性化功能及页面设置&#xff0c;企…