python numpy库np.percentile用法说明


Posted in Python onJune 08, 2020

在python中计算一个多维数组的任意百分比分位数,此处的百分位是从小到大排列,只需用np.percentile即可……

a = range(1,101)
#求取a数列第90%分位的数值
np.percentile(a, 90)
Out[5]: 90.10000000000001

a = range(101,1,-1)
#百分位是从小到大排列
np.percentile(a, 90)
Out[7]: 91.10000000000001

详看官方文档

numpy.percentile
Parameters
 ----------
 a : np数组
 q : float in range of [0,100] (or sequence of floats)
  Percentile to compute。
  要计算的q分位数。
 axis : 那个轴上运算。
 keepdims :bool是否保持维度不变。

 Examples
 --------
 >>> a = np.array([[10, 7, 4], [3, 2, 1]])
 >>> a
 array([[10, 7, 4],
   [ 3, 2, 1]])
 >>> np.percentile(a, 50) #50%的分位数,就是a里排序之后的中位数
 3.5
 >>> np.percentile(a, 50, axis=0) #axis为0,在纵列上求
 array([[ 6.5, 4.5, 2.5]])
 >>> np.percentile(a, 50, axis=1) #axis为1,在横行上求
 array([ 7., 2.])
 >>> np.percentile(a, 50, axis=1, keepdims=True) #keepdims=True保持维度不变
 array([[ 7.],
   [ 2.]])

补充知识:关于np.percentile函数的自己的理解(我觉得很对)

最近在跑别人baseline的时候看到np.percentile这个函数,之前没有用过,就跑去官方文档看了看到底是怎么工作的(官方文档连接)

行吧,官方文档给出的例子居然是以50为例(我当然知道这是得到中位数啊!!!),但是自己在运行的时候一直不明白下面的结果为什么是5.8.

python numpy库np.percentile用法说明

后来自己琢磨了一下,函数得到的结果是得到一个数,列表中百分之60的数小于该数字。

图中的列表长度为9,。数字1所对应的是0%,数字9对应的是100%,中间有8个间隔。100/8=12.5.

参数为60,那么60/12.5=4.8,意味着需要4.8个间隔,好的,先跳过4个间隔,现在到达5这个位置,然后往后0.8个间隔,该间隔对应的长度为6-5=1,所以最后得出的结果为5+1*0.8=5.8,和函数输出的结果一样。

主要是自己爱较真,不想了解具体怎么算的话只要记住函数的统计意义就可以。

另外关于我的解释中为什么要用“间隔”这种描述,因为我写的例子中1-9,间隔相邻数字的差是一样的,但是在实际应用中可能不一样。

以上这篇python numpy库np.percentile用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用MD5加密字符串示例
Aug 22 Python
Python itertools模块详解
May 09 Python
Python守护进程用法实例分析
Jun 04 Python
numpy的文件存储.npy .npz 文件详解
Jul 09 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
Oct 17 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
Python docx库用法示例分析
Feb 16 Python
python 实现单通道转3通道
Dec 03 Python
np.random.seed() 的使用详解
Jan 14 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
python thrift 实现 单端口多服务的过程
Jun 08 #Python
Python astype(np.float)函数使用方法解析
Jun 08 #Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 #Python
python:删除离群值操作(每一行为一类数据)
Jun 08 #Python
pyecharts在数据可视化中的应用详解
Jun 08 #Python
python numpy实现rolling滚动案例
Jun 08 #Python
Python如何向SQLServer存储二进制图片
Jun 08 #Python
You might like
用php解析html的实现代码
2011/08/08 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
PHP处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
php实现cookie加密的方法
2015/03/10 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
原生js实现购物车
2020/09/23 Javascript
Python爬取APP下载链接的实现方法
2016/09/30 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python的移位操作实现详解
2019/08/21 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
大学生自荐书范文
2013/12/10 职场文书
毕业自我评价
2014/02/05 职场文书
学习雷锋倡议书
2014/04/15 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js