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提取html文件中的特定数据的实现代码
Mar 24 Python
Python性能优化技巧
Mar 09 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
Python itertools.product方法代码实例
Mar 27 Python
Python 中由 yield 实现异步操作
May 04 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
pandas按条件筛选数据的实现
Feb 20 Python
Python爬取酷狗MP3音频的步骤
Feb 26 Python
python 实现有道翻译功能
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
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
json格式的时间显示为正常年月日的方法
2013/09/08 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
Sublime开发python程序的示例代码
2018/01/24 Python
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
Python实现代码统计工具
2019/09/19 Python
通俗讲解python 装饰器
2020/09/07 Python
《月迹》教学反思
2014/02/19 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
分公司经理任命书
2014/06/05 职场文书
2014年平安夜寄语
2014/12/08 职场文书
晚会闭幕词
2015/01/28 职场文书
费用申请报告范文
2015/05/15 职场文书
《失物招领》教学反思
2016/02/20 职场文书
python爬虫--selenium模块
2021/03/31 Python
详解redis分布式锁的这些坑
2021/05/19 Redis
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers