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实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 Python
Python中单、双下划线的区别总结
Dec 01 Python
Python rstrip()方法实例详解
Nov 11 Python
django 简单实现登录验证给你
Nov 06 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Python3如何在服务器打印资产信息
Aug 27 Python
python 多线程中join()的作用
Oct 29 Python
python字典与json转换的方法总结
Dec 28 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 Python
Python何绘制带有背景色块的折线图
Apr 23 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
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
js获取Get值的方法
2016/09/29 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
小程序实现图片预览裁剪插件
2019/11/22 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
Python open()文件处理使用介绍
2014/11/30 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
python爬虫中多线程的使用详解
2019/09/23 Python
3种python调用其他脚本的方法
2020/01/06 Python
python numpy数组复制使用实例解析
2020/01/10 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
物理学专业自荐信
2014/06/11 职场文书
2014年环保局工作总结
2014/12/11 职场文书
吴仁宝观后感
2015/06/09 职场文书
python神经网络 使用Keras构建RNN训练
2022/05/04 Python