Python之数据分析(random模块的正确用法)
文章目录
- 一、二项分布:numpy.random.binomial(n, p, size)
- 二、超几何分布:numpy.random.hypergeometric(ngood, nbad, nsample, size)
- 三、正态分布:numpy.random.normal(size)
一、二项分布:numpy.random.binomial(n, p, size)
1、返回值: 返回包含size个的随机数数组,其中每个随机数来自n次尝试中的成功次数,p为每次尝试成功的概率
2、经典案例——猜硬币游戏
初始筹码1000,每轮猜9次,猜对5次或5次以上为赢,筹码加一,否则为输,筹码减一。
用程序模拟10000轮,记录筹码数的变化,即为binomial(9, 0.5, 10000)
3、测试代码
import numpy as np
import matplotlib.pylab as mpoutcomes = np.random.binomial(9, 0.5, 10000) # 记录成功曲线的数据
chips = [1000] #记录筹码的变化
for outcome in outcomes:if outcome >= 5 :chips.append(chips[-1]+1) # 则将最后一个筹码+1else:chips.append(chips[-1] - 1)
chips = np.array(chips) # 变成数组# 基本图形参数
mp.figure('Binomial', facecolor='lightgray')
mp.title('Binomial', fontsize=20)
mp.xlabel("Round", fontsize=14)
mp.ylabel('Chip', fontsize=14)
mp.tick_params(labelsize=10)
mp.grid(linestyle=':')
二、超几何分布:numpy.random.hypergeometric(ngood, nbad, nsample, size)
1、返回值: 返回包含size个随机数的数组,其中每个随机数来自随机抽取nsample个样本中好样本的个数,ngood个好样本,nbad个坏样本。
2、经典案例——摸球球游戏: 将25个好球和1个坏球放在一起,每一轮摸出3个球,若全为好球则加1分,若有坏球则减6分。模拟程序模拟100轮,记录分值的变化。hypergeometric(25, 1, 3, 100)
3、测试代码
import numpy as np
import matplotlib.pylab as mpoutcomes = np.random.hypergeometric(25, 1, 3, 100) # 记录成功曲线的数据
scores = [0] #记录得分的变化
for outcome in outcomes:if outcome == 3 :scores.append(scores[-1]+1) # 则将最后一个筹码+1else:scores.append(scores[-1] - 6)
scores = np.array(scores) # 变成数组# 基本图形参数
mp.figure('Hypergeometric', facecolor='lightgray')
mp.title('Hypergeometric', fontsize=20)
mp.xlabel("Round", fontsize=14)
mp.ylabel('Score', fontsize=14)
mp.tick_params(labelsize=10)
mp.grid(linestyle=':')# 绘制图像
if scores[-1] < scores[0]: # 小于最开始的筹码数,就是输了color = 'orangered'
elif scores[-1] > scores[0]: # 赢了color = 'limegreen'
else:color = 'dodgerblue'
mp.plot(scores, c=color, label='Chip')mp.legend()
mp.show()
三、正态分布:numpy.random.normal(size)
1、返回值: 输出包含size个随机数的数组,其中每个随机数服从标准正态分布规律,即平均值为0,标准差为1的正态分布。
2、经典案例
import numpy as np
import matplotlib.pylab as mpsamples = np.random.normal(size=10000) # 记录成功曲线的数据
# 验证平均值和标准差(接近0和接近1)
print(samples.mean(), samples.std())# 基本图形参数
mp.figure('Standard Normal', facecolor='lightgray')
mp.title('Standard Normal', fontsize=20)
mp.xlabel("Sample", fontsize=14)
mp.ylabel('Occurrence', fontsize=14)
mp.tick_params(labelsize=10)
mp.grid(axis='y', linestyle=':') # 只画水平网格线# 绘制图像(直方图),100表示分成100段,normed表示按照比例显示纵坐标
mp.hist(samples, 100,edgecolor='steelblue',facecolor='deepskyblue',label="Standard Normal")mp.legend()
mp.show()
3、测试效果
Python之数据分析(random模块的正确用法)相关推荐
- python中的random模块_Python内置random模块生成随机数的方法
本文我们详细地介绍下两个模块关于生成随机序列的其他使用方法. 随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的ran ...
- python random模块中的指令_10分钟让你掌握python编程中random模块功能使用,非常详细...
原标题:10分钟让你掌握python编程中random模块功能使用,非常详细 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可 ...
- Python中的random模块
Python中的random模块用于随机数生成,对几个random模块中的函数进行简单介绍.如下: random.random() 用于生成一个0到1的随机浮点数.如: import random r ...
- python中的random模块_Python中的random模块
Python 中的 random 模块 1. Python 中的 random 模块用于生成随机数.下面介绍一下 random 模块中最常用 的几个函数. 2. 3. random.random 4. ...
- python笔记:random模块中的函数
目录 伪随机数生成器 从序列中获取一个随机值 生成[a,b]随机整数 [a,b]间隔k生成随机整数 [a,b]随机生产浮点数 从序列(集合)中随机获取不同的10个值,结果用一个列表返回 将列表中元素打 ...
- random()模块随机函数的用法总结
random()是Python中生成随机数的函数,是由random模块控制,random()函数不能直接访问,需要导入random 模块,然后再通过相应的静态对象调用该方法才能实现相应的功能 目录 1 ...
- python生成随机数—random模块
random 模块包括返回随机数的函数,可以用于模拟或者任何产生随机输出的程序. random.random() 返回随机生成的一个实数,它在[0,1)范围内 random.randint(a, ...
- python中的random模块学习
我将random模块中的各函数作为代码中的注释说明了: 下面是运行结果 参考文献 http://www.jb51.net/article/50066.htm
- 滚雪球学 Python 之内置 random 模块
橡皮擦,一个逗趣的互联网高级网虫,新的系列,让我们一起 Be More Pythonic. 滚雪球学 Python 第二轮 已完成的文章清单 十二.Python 内置模块之 random 12.1 基 ...
最新文章
- JavaScript (二)
- 用正则表达式验证php用户注册系统,php用户注册时常用的检验函数实例总结
- mongodb更新操作符$inc,$mul
- 关于Java交换两个对象的问题
- 如何在sql存储过程中打log_SQL语句优化
- Android 别踩白块 源码分析
- 几张动态图弄懂递归,二叉树,二分查找简短算法
- c语言文件名错误的是,C语言程序错误,不能正常读写文件,求解啊
- 估值过能预市下行风险
- COM ---- Inside COM Note
- 为什么天蝎座出互联网大佬,我来告诉你原因!
- WinSCP 连接 AWS 服务器
- Uncaught SyntaxError: Unexpected identifier问题解决
- [开源工具]2022/2023 分享好用的免费的云短信/临时短信[Temp Message]
- LeetCode #743 Network Delay Time
- 用户为什么要使用天翼LIVE?
- 2021修水高考成绩查询,修水中考成绩查询2021
- 什么是 MVVM 模式?
- oracle两个date相减_oracle 两个时间相减[转]
- 最大权闭合子图(最小割模型)
热门文章
- python面向对象的特征_03 Python 关键点讲解:面向对象的机制
- java char i=2+#039;2#039;;_图说String(三)String中#039;+#039;和StringBuilder的区别
- 简述mysql的事务_请简述为什么要使用数据库的事务
- 服务器中修改项目端口,c#-在Visual Studio 2013中更改项目端口号
- mysql update 批量更新_mysql 批量更新的两种方法
- linux扩容后显示管理,linux之lvm管理及扩容
- 错误 1 未能找到类型或命名空间名称mysql_错误1未能找到类型或命名空间名称“DataPager”(是否缺少 using 指令或程序集引用?)...
- android porting usb audio,android - 在android中启动时找不到audio-hal-2-0 - 堆栈内存溢出...
- oracle 11g RAC无法采用deinstall自动卸载grid,手动卸载,超级棒!
- 查看oracle会话空闲时间,使用Oracle PROFILE控制会话空闲时间