np.percentile()(超详细超简单!!!)

2023-10-22 08:50
文章标签 简单 详细 np percentile

本文主要是介绍np.percentile()(超详细超简单!!!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

百分位是一个多维数组中对应每个数的,小于它的数的占总数比。

np.percentile(a, q, axis=None,keepdims:bool)

参数

  • a : array,用来算分位数的对象,可以是多维的数组
  • q : 介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如要算两个位置的数就[0,100],多个位置如[0,25,50,75,100]
  • axis : axis为0,在纵列上求;axis为1,在横列上求;
  • keepdims:bool,是否保持维度不变。

栗子

import numpy as np
a = np.array([[6, 10, 11], [3, 2, 12]])
print(a)
print(np.percentile(a,[0,25,50,75,100]))

输出结果

[[ 6 10 11][ 3  2 12]]
[ 2.    3.75  8.   10.75 12.  ]

解释

排序为2,3,6,10,11,12,首先占比为0和占比100的当然就是最小值和最大值了;其次占比为25%的数小于3.75;再次占比为50%的数小于8,即小于中位数;最后占比为75%的数小于10.75;

为什么是3.75和10.75?下面介绍线性插值法计算百分位数

loc = 1 + (n - 1) * p ,其中n为排序后数的个数,p为百分位
num = a[loc整数部分 - 1] + (a[loc整数部分] - a[loc整数部分 - 1]) * loc小数部分

#如a = [2,3,6,10,11,12]
#对于25%
loc = 1+(6-1)*0.25 = 2.25
num = a[2 - 1] + (a[2] - a[2 - 1])*0.25= a[1] + (a[2] - a[1])*0.25= 3 + (6-3)*0.25= 3.75 

其他

参考官方文档

Examples
--------
>>> a = np.array([[10, 7, 4], [3, 2, 1]])
>>> a
array([[10,  7,  4],[ 3,  2,  1]])
>>> 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.]])

参考

https://www.cnblogs.com/nxf-rabbit75/p/10576840.html
https://blog.csdn.net/brucewong0516/article/details/80205422
https://blog.csdn.net/Toxicant__/article/details/103606720
https://blog.csdn.net/baidu_38432186/article/details/109412206
https://www.pythonheidong.com/blog/article/398943/74bde73098fcf59b3329/

我讲明白了吗?
在这里插入图片描述

这篇关于np.percentile()(超详细超简单!!!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/260396

相关文章

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子