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中使用OpenCV进行人脸检测的例子
Apr 18 Python
python实现多线程采集的2个代码例子
Jul 07 Python
python求解水仙花数的方法
May 11 Python
python Django模板的使用方法
Jan 14 Python
python类中super()和__init__()的区别
Oct 18 Python
详解python进行mp3格式判断
Dec 23 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
python 字符串只保留汉字的方法
Nov 16 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
Python基于类路径字符串获取静态属性
Mar 12 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批量采集下载美女图片的实现代码
2013/06/03 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
python求斐波那契数列示例分享
2014/02/14 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
python对象及面向对象技术详解
2016/07/19 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
python在每个字符后添加空格的实例
2018/05/07 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
WxPython建立批量录入框窗口
2019/02/27 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
电大毕业个人生自我鉴定
2014/03/26 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android