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的类方法和静态方法
Dec 13 Python
简单介绍Python中的JSON模块
Apr 08 Python
python3使用urllib模块制作网络爬虫
Apr 08 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
Python数据结构之翻转链表
Feb 25 Python
python模块之sys模块和序列化模块(实例讲解)
Sep 13 Python
Python多继承顺序实例分析
May 26 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
python+selenium+chromedriver实现爬虫示例代码
Apr 10 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源代码
2006/10/09 PHP
php实现aes加密类分享
2014/02/16 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
php实现mysql封装类示例
2014/05/07 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
简述php环境搭建与配置
2016/12/05 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
微信小程序实现签到弹窗动画
2020/09/21 Javascript
使用Python处理BAM的方法
2018/09/28 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
django解决跨域请求的问题详解
2019/01/20 Python
Python将string转换到float的实例方法
2019/07/29 Python
python_mask_array的用法
2020/02/18 Python
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
文明教师事迹材料
2014/01/16 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
银行服务理念口号
2015/12/25 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
python通过函数名调用函数的几种方法总结
2021/06/07 Python
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python