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实现电子词典
Apr 23 Python
Python实现的几个常用排序算法实例
Jun 16 Python
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 Python
Python 搭建Web站点之Web服务器与Web框架
Nov 06 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
Python bytes string相互转换过程解析
Mar 05 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
Python图像处理库PIL详细使用说明
Apr 06 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 md5下16位和32位的实现代码
2008/04/09 PHP
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP比你想象的好得多
2014/11/27 PHP
php实现将Session写入数据库
2015/07/26 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
python选择排序算法实例总结
2015/07/01 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
django中静态文件配置static的方法
2018/05/20 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
优秀求职信范文分享
2014/01/26 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
高中生第一学年自我鉴定2015
2014/09/28 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
停电放假通知
2015/04/14 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
师范生见习总结范文
2015/06/23 职场文书
食堂管理制度范本
2015/08/04 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python