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常用的日期时间处理方法示例
Feb 08 Python
Python实现建立SSH连接的方法
Jun 03 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 Python
Python决策树分类算法学习
Dec 22 Python
基于python操作ES实例详解
Nov 16 Python
基于Django实现日志记录报错信息
Dec 17 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
Dec 31 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
详解python with 上下文管理器
Sep 02 Python
python中使用asyncio实现异步IO实例分析
Feb 26 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
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
python统计中文字符数量的两种方法
2019/01/31 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
python自动识别文本编码格式代码
2019/12/26 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
3种方式实现瀑布流布局小结
2019/09/05 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
四查四看整改措施
2014/09/19 职场文书
加入学生会自荐书
2015/03/05 职场文书
党支部半年考察意见
2015/06/01 职场文书
围城读书笔记
2015/06/26 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
《去年的树》教学反思
2016/02/18 职场文书