该模块实现了各种分布的伪随机数生成器。可以在区间内抽取一个随机数,可以在列表中抽取一个元素,可以从分布中抽取样本 。

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模块相关推荐

  1. python dash教程_开发者必备神器Dash使用教程

    Dash是什么,为什么说对于开发者是必备工具?今天就让我们一起来认识一下这款程序员必备神器Dash.作为一名死coder,每天最常见的动作就是查看各种API文档,你一定有过同时打开N个窗口(HTML. ...

  2. python自定义随机数_python:numpy.random模块生成随机数

    简介 所谓生成随机数,即按照某种概率分布,从给定的区间内随机选取一个数.常用的分布有:均匀分布(uniform distribution),正态分布(normal distribution),泊松分布 ...

  3. python中 time、datetime、random模块

    1. 自定义模块 1.1 模块分类 模块的分类: 1.内置模块(标准库)--python解释器自带的.py文件(模块): 2.第三方模块-- 需要额外下载的 (pypi) 3.自定义模块(程序员写的) ...

  4. python认证教程_基于 Python+SendCloud 的邮箱认证

    项目简介:为了方便日后密码遗忘进行修改或者进行消息推广等,现在各大网站在注册的时候总是免不了填写邮箱验证邮箱的流程.本门课程将通过使用 SendCloud 提供的 API 来实现一个本地版的邮箱认证过 ...

  5. python清华教程_清华教授整理的全套Python 400集视频教程,速拿!

    Python是世界上功能最多,功能最强大的编程语言之一.如果你一直想学Python,但是不知道如何入手,那就别犹豫了.这篇文章就是为你写的. 清华教授整理的Python全集视频教程,这就是你需要的 如 ...

  6. python 内置模块random_Python3.5内置模块之random模块用法实例分析

    本文实例讲述了Python3.5内置模块之random模块用法.分享给大家供大家参考,具体如下: 1.random模块基础的方法 #!/usr/bin/env python # -*- coding: ...

  7. python 加权随机算法_python的random模块及加权随机算法的python实现方法

    random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串. •random.seed(x)改变随机数生成器的种子seed. 一般不必特别去设定seed,Python会自动选择seed. ...

  8. java和python自学教程_适合 Java开发者学习的Python 入门教程—文海思创

    原标题:适合 Java开发者学习的Python 入门教程-文海思创 [文海思创讯]在Java文章频道里,我们大部分人应该对该语言都非常的了解,而且在该生态圈内至少已经呆了好几年了.这让我们有常规和专业 ...

  9. Python choices()函数详解、random模块下的常用函数

    random模块下的方法详解: 1.random.random() 随机生成一个[0,1)之间的浮点数. 2.random.randint(a,b) 随机生成[a,b]范围内一个整数. 3.rando ...

最新文章

  1. 20162325 金立清 S2 W8 C17
  2. VBA 里面注册dll
  3. 018_Spring+ActiveMQ(消息中间件)
  4. gnuplot绘图学习
  5. php跨域同步登录,织梦PC端移动端会员同步登录跨域AJAX
  6. 计算机应用基础理论,计算机应用基础理论A卷.doc
  7. 厄瓜多尔最大银行遭攻击,服务被迫中断
  8. openeuler学习指南
  9. foobar2000转换APE参数设置
  10. python数学符号大全_数学符号大全
  11. 生物医学工程实用在线工具
  12. python神经网络模型调用后预测值不变_用R语言实现神经网络预测股票实例
  13. 烧写ARM板----MYS-6ULX
  14. 网络安全渗透技术(入门视频课程)-李云鹏-专题视频课程
  15. 高清视音监控系统的实现
  16. Python如何获取 Jenkins构建日志
  17. RSA非对称加密解密实现
  18. 图像二值化 cv2.threshold
  19. 安全驾驶-座椅枕头高度(九)
  20. python全国天气信息爬取

热门文章

  1. 服务器ip映射修改_集群高可用篇_01
  2. HTTP状态码415 springboot项目
  3. cmd输入pip报错_pyhon3下pip安装使用教程(win10)
  4. Python 文件读写操作-Python零基础入门教程
  5. jq之animate() toggle
  6. java判断线程是否wait_Java并发编程之线程间通讯(上)wait/notify机制
  7. linux桌面发展方向,观点|Linux 桌面的发展之路!
  8. java是值传递还是引用传递_Java 到底是值传递还是引用传递?
  9. docker查找镜像_5 款非常好用的开源 Docker 工具,get一波~
  10. linux 如何查看属性,linux 下查看系统属性