python数值模拟教程_数值模拟必备random模块
该模块实现了各种分布的伪随机数生成器。可以在区间内抽取一个随机数,可以在列表中抽取一个元素,可以从分布中抽取样本 。
random模块不能直接访问,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
1 生成随机数
随机生成器种子,在同一个种子下,生成同样的随机数
random.seed()
返回 [0, 1.0) 范围内的下一个随机浮点数。
random.random()
random.int(a,b) 生成整数,a <= N <= b。
random.randint(1,4) #
2
2 序列中随机选取一个
在序列range() 中随机选取一个整数random.randrange( start, stop , step )
random.randrange(1,5,2)
3
random.choice(population), 从非空序列 population 返回一个随机元素。 如果 seq 为空,则引发 IndexError.
random.choice([2,5,8])
8
random.choices(population, weights=None, *, cum_weights=None, k) . 从整体中按照权重抽取K个,权重序列长度必须等于population长度。 显然,不给定权重且k=1. 等价于
random.choice(population).
random.choices(['red', 'black', 'green'], [4, 10, 2], k=6)
['green', 'black', 'red', 'black', 'green', 'black']
random.sample(population, k, *, counts=None),返回从总体序列或集合中选择的唯一元素的 k 长度列表,即无重复(无放回)的随机抽样。
random.sample(['red', 'black', 'green'], 2)
['red', 'green']
3.9版本之后,增加counts 形参,可以指定个数, random.sample([‘red’, ‘red’,‘red’,‘black’, ‘green’], 2)等价于random.sample([‘red’,‘black’, ‘green’],counts=[3,1,1], 2)
3从分布中抽取样本
常用的分布如下表:
函数分布gauss(mu,sigma)/normalvarite(mu,sigma)正态分布
uniform(a,b)均匀分布
expovariate(lamda)指数分布
gammavariate(alpha,beta)Gamma 分布
lognormvariate(mu,sigma)对数正态分布
betavariate(alpha,beta)Beta 分布
weibullvariate(alpha,beta)Weibull 分布
paretovariate(alpha)Pareto 分布
vonmisesvariate(mu,kappa)von Mises 分布(
random.gauss(1,2)
-0.34372692554557815
random.uniform(1,2)
1.7719936383153665
random.expovariate(1)
0.079384517694696
random.gammavariate(1,3)
3.8134444290373866
random.lognormvariate(1,2)
2.561312589509173
random.betavariate(1,2)
0.03565784800319274
random.weibullvariate(1,2)
1.211306128111137
random.paretovariate(1)
1.709941711311189
random.vonmisesvariate(1,2)
2.377632588889548
data = [random.gammavariate(2,4) for i in range(10000)] # 抽取10000个gamma分布样本
#直方图
import matplotlib.pyplot as plt
plt.hist(data, bins=100, color="#FF0000", alpha=.7)
4 打乱顺序
random.shuffle(x [, random])将序列 x 随机打乱位置。
a=[1,3,5,7,9]
random.shuffle(a);print(a)
[3, 7, 5, 1, 9] # 原地打乱顺序
原文链接:https://blog.csdn.net/weixin_43705953/article/details/109025791
python数值模拟教程_数值模拟必备random模块相关推荐
- python dash教程_开发者必备神器Dash使用教程
Dash是什么,为什么说对于开发者是必备工具?今天就让我们一起来认识一下这款程序员必备神器Dash.作为一名死coder,每天最常见的动作就是查看各种API文档,你一定有过同时打开N个窗口(HTML. ...
- python自定义随机数_python:numpy.random模块生成随机数
简介 所谓生成随机数,即按照某种概率分布,从给定的区间内随机选取一个数.常用的分布有:均匀分布(uniform distribution),正态分布(normal distribution),泊松分布 ...
- python中 time、datetime、random模块
1. 自定义模块 1.1 模块分类 模块的分类: 1.内置模块(标准库)--python解释器自带的.py文件(模块): 2.第三方模块-- 需要额外下载的 (pypi) 3.自定义模块(程序员写的) ...
- python认证教程_基于 Python+SendCloud 的邮箱认证
项目简介:为了方便日后密码遗忘进行修改或者进行消息推广等,现在各大网站在注册的时候总是免不了填写邮箱验证邮箱的流程.本门课程将通过使用 SendCloud 提供的 API 来实现一个本地版的邮箱认证过 ...
- python清华教程_清华教授整理的全套Python 400集视频教程,速拿!
Python是世界上功能最多,功能最强大的编程语言之一.如果你一直想学Python,但是不知道如何入手,那就别犹豫了.这篇文章就是为你写的. 清华教授整理的Python全集视频教程,这就是你需要的 如 ...
- python 内置模块random_Python3.5内置模块之random模块用法实例分析
本文实例讲述了Python3.5内置模块之random模块用法.分享给大家供大家参考,具体如下: 1.random模块基础的方法 #!/usr/bin/env python # -*- coding: ...
- python 加权随机算法_python的random模块及加权随机算法的python实现方法
random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. •random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. ...
- java和python自学教程_适合 Java开发者学习的Python 入门教程—文海思创
原标题:适合 Java开发者学习的Python 入门教程-文海思创 [文海思创讯]在Java文章频道里,我们大部分人应该对该语言都非常的了解,而且在该生态圈内至少已经呆了好几年了.这让我们有常规和专业 ...
- Python choices()函数详解、random模块下的常用函数
random模块下的方法详解: 1.random.random() 随机生成一个[0,1)之间的浮点数. 2.random.randint(a,b) 随机生成[a,b]范围内一个整数. 3.rando ...
最新文章
- 20162325 金立清 S2 W8 C17
- VBA 里面注册dll
- 018_Spring+ActiveMQ(消息中间件)
- gnuplot绘图学习
- php跨域同步登录,织梦PC端移动端会员同步登录跨域AJAX
- 计算机应用基础理论,计算机应用基础理论A卷.doc
- 厄瓜多尔最大银行遭攻击,服务被迫中断
- openeuler学习指南
- foobar2000转换APE参数设置
- python数学符号大全_数学符号大全
- 生物医学工程实用在线工具
- python神经网络模型调用后预测值不变_用R语言实现神经网络预测股票实例
- 烧写ARM板----MYS-6ULX
- 网络安全渗透技术(入门视频课程)-李云鹏-专题视频课程
- 高清视音监控系统的实现
- Python如何获取 Jenkins构建日志
- RSA非对称加密解密实现
- 图像二值化 cv2.threshold
- 安全驾驶-座椅枕头高度(九)
- python全国天气信息爬取
热门文章
- 服务器ip映射修改_集群高可用篇_01
- HTTP状态码415 springboot项目
- cmd输入pip报错_pyhon3下pip安装使用教程(win10)
- Python 文件读写操作-Python零基础入门教程
- jq之animate() toggle
- java判断线程是否wait_Java并发编程之线程间通讯(上)wait/notify机制
- linux桌面发展方向,观点|Linux 桌面的发展之路!
- java是值传递还是引用传递_Java 到底是值传递还是引用传递?
- docker查找镜像_5 款非常好用的开源 Docker 工具,get一波~
- linux 如何查看属性,linux 下查看系统属性