Numpy随机数(一):超几何分布
超几何分布

。
Numpy中的超几何分布
Numpy的random包中提供了产生超几何分布结果的函数:
numpy.random.hyermetric(ngoog,nbad,nsample,size=None)
https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.hypergeometric.html
- ngood: 做出好的选择的数量,相当于上面的N件产品中的合格品,即N-M;
- nbad:做出坏的选择的数量,相当于上面的M件合格品;
- nsample:每次的采样数;
- size:采样的组数,即试验组数.
上面的hypermetric()函数返回一组size大小的数组,数组中的每个数是在一组采样中合格产品的数量,即上面的k.
下面我们用一个具体的做游戏的例子来说明这个函数的用法:
一个袋子中有20个球,其中有1个黑球,别的都是红球.从袋子中每次取3个球,如果3个都是红球加1分,如果其中有一个黑球就减4分.我们用程序来模拟100次试验以后的得分情况,并绘制出得分的变化图.
(为了方便,以下代码是在ipython -pylab运行的)
1 使用hypermetric()初始化100组试验的结果,并初始化一个分数数组.
# 初始化一个计分板
points = zeros(100)
# 使用超几何分布初始化每次实验结果
# outcomes数组中的每一个项都是一次试验中取得红球的个数
# 注意第一个参数是红球个数,即为19而不是20
outcomes = random.hypermetric(19,1,3,size = len(points))
2 根据每一次模拟试验的结果来设置分数
for i in range(len(points)):
if outcomes[i] == 3:
points[i] = points[i-1] + 1
elif outcomes[i] == 2:
points[i] = points[i-1] - 4
else:
print(outcomes[i])
3 利用matplotlib绘制分数变化的曲线
plt.plot(np.arange(len(points)),points)
plt.title("Game SImulation")
plt.xlabel('# Rounds')
plt.ylabel('Score')
plt.grid()
plt.show()
4 分数变化的曲线如下

Numpy随机数(一):超几何分布的更多相关文章
- Numpy随机数
Numpy随机数 np.random随机数子库 1: 基本函数 .rand(d0,d1,..dn):创建d0-dn维度的随机数数组,浮点数,范围从0-1,均匀分布 .randn(d0,d1,..dn) ...
- 科学计算工具-Numpy初探
Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组ndarray ...
- 【机器学习】--Python机器学习库之Numpy
一.前述 NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵. NumPy包含很多实用的数学函数,涵盖线性代数运算.傅 ...
- 01. Numpy模块
1.科学计算工具-Numpy基础数据结构 1.1.数组ndarray的属性 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成:① 实际的数据② 描述这些数据的元数据 注意数组格式, ...
- numpy 模块常用方法
Numpy是科学计算库,是一个强大的N维数组对象ndarray,是广播功能函数.其整合C/C++.fortran代码的工具 ,更是Scipy.Pandas等的基础 .ndim :维度 .shape : ...
- Numpy基本数据结构
Numpy数组是一个多维数组对象,称为ndarray.其由两部分组成: 1 实际的数据 2 描述这些数据的元数据 一 ndarray的方法 # 多维数组ndarray import numpy as ...
- Python之Numpy库常用函数大全(含注释)
前言:最近学习Python,才发现原来python里的各种库才是大头! 于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习,还是用到时候再查,没必要死记硬背 ...
- Numpy科学计算工具
Numpy初探 Numpy基础数据结构 Numpy数组是一个多维数组,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的原数据 导入该库: import numpy as np 多维数组 ...
- Numpy常用函数用法大全
.ndim :维度.shape :各维度的尺度 (2,5).size :元素的个数 10.dtype :元素的类型 dtype(‘int32’).itemsize :每个元素的大小,以字节为单位 ,每 ...
随机推荐
- JVM类加载机制详解
引言 如下图所示,JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程. 加载 在加载阶段,虚拟机需要完成以下三件事情: 1)通过一个类的全限定名来获取定义此 ...
- RobotFramework学习-问题
RobotFramework,基于Python的自动化测试框架.近期学习中遇到过一些问题. 1.运行ride时,报错[ ERROR ] option --monitorcolors not recog ...
- Go 语言并发笔记
前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请 ...
- paperfree
主题:免费的论文查重网站 正文:给大家推荐一个免费的论文查重网站PaperFree:http://www.paperfree.cn
- Activator不能创建包含范型参数的实例
Activator包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用.此类不能被继承. 具体介绍:http://msdn.microsoft.com/zh-cn/library ...
- TextView 垂直居中
需要区分的是这里的top,bottom,ascent,descent,baseline是指字内容的属性,通过getPaint().getFontMetricsInt()来获取得到.和字体内容的外部容 ...
- Arch Linux freemind中文乱码
原因:jre没有可用的中文字体 解决方法: (1) 安装中文字体,例如文泉驿微黑 pacman -S wqy-microhei (2) jre字体目录下建立fallback,并链接中文字体作为后备字体 ...
- Alpha冲刺(七)
Information: 队名:彳艮彳亍团队组长博客:戳我进入作业博客:班级博客本次作业的链接 Details: 组员1(组长)柯奇豪 过去两天完成了哪些任务 改用更易用的springboot+myb ...
- Jenkins构建完成之后运行脚本可以杀掉TomCat但是起不来的解决方法
Jenkins构建完成之后运行脚本可以杀掉TomCat但是起不来的解决方法 写了一个重启tomcat的脚本,让jenkins编译.打包.发布时调用.在本地写好重启tomcat的脚本后,本地执行脚本没有 ...
- TSQL--约束基础和Demo
--============================================================ SQL SERVER 中使用constraint和role来对数据进行限制 ...
