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中请使用isinstance()判断变量类型
Aug 25 Python
python列表的常用操作方法小结
May 21 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
使用Python 统计高频字数的方法
Jan 31 Python
python3使用matplotlib绘制散点图
Mar 19 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
Django密码系统实现过程详解
Jul 19 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
Python图像读写方法对比
Nov 16 Python
python数据可视化JupyterLab实用扩展程序Mito
Nov 20 Python
Python pyecharts案例超市4年数据可视化分析
Aug 14 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
Netflix将与CLAMP、乙一以及冲方丁等6名知名制作人合伙展开原创动画计划!
2020/03/06 日漫
php计算当前程序执行时间示例
2014/04/24 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
php中关于换行的实例写法
2019/09/26 PHP
phpfpm的作用和用法
2019/10/10 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
如何利用ES6进行Promise封装总结
2019/02/11 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
社区网格化管理实施方案
2014/03/21 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
导游词怎么写
2015/02/04 职场文书
二年级数学教学反思
2016/02/16 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python
Nginx实现负载均衡的项目实践
2022/03/18 Servers