Python中np.percentile和df.quantile分位数详解(python 分位点)新鲜出炉

随心笔谈9个月前发布 admin
203 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了Python中两个用于计算分位数的函数:`numpy.percentile` 和 `pandas.DataFrame.quantile`。以下是文章的核心内容总结: 1. **`numpy.percentile` 函数**: - 用于在多维数组上计算指定分位数(如中位数、四分位数等)。 - 主要参数包括: - `a`:输入数组。 - `q`:分位数比例(0到1之间,或多个比例)。 - `axis`:指定计算分位数的轴(默认为展平数组)。 - `interpolation`:插值方法(如线性、分位数等)。 - `keepdims`:是否保留计算轴的维度。 - 示例: ```python a = np.array([[10, 7, 4], [3, 2, 1]]) np.percentile(a, 50) # 计算整体中位数 np.percentile(a, 50, axis=0) # 按列计算中位数 np.percentile(a, 50, axis=1) # 按行计算中位数 np.percentile(a, 50, axis=1, keepdims=True) # 保留轴维度 ``` 2. **`pandas.DataFrame.quantile` 方法**: - 用于在DataFrame上计算分位数,支持多种参数组合。 - 主要参数包括: - `q`:分位数比例(默认为0.5,即中位数)。 - `axis`:计算方向(默认为行)。 - `numeric_only`:是否仅计算数值列(默认为True)。 - `interpolation`:插值方法。 - 示例: ```python df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]), columns=['a', 'b']) df.quantile(0.1) # 计算0.1分位数 df.quantile([0.1, 0.5]) # 计算多个分位数 ``` 3. **总结**: - `numpy.percentile` 和 `pandas.DataFrame.quantile` 都用于计算分位数,但前者适用于数组,后者适用于DataFrame。 - 两个函数均支持多种分位数比例、轴方向、插值方法和结果形状控制参数。 - 通过示例展示了如何使用这些函数计算不同分位数的结果,并强调了参数对结果的影响。 这篇文章通过具体的例子和详细说明,帮助读者理解如何在Python中使用这些函数进行分位数计算。



目录np.percentile参数:pandas.DataFrame.quantile参数:返回总结 
numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation=’linear’, keepdims=False)

a : array,用来算分位数的对象,可以是多维的数组q : array_like of float,介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如要算两个位置的数就(25,75)axis : 坐标轴的方向,一维的就不用考虑了,多维的就用这个调整计算的维度方向,取值范围0/1,默认值为沿着数组的展平版本计算百分位数out : 输出数据的存放对象,参数要与预期输出有相同的形状和缓冲区长度overwrite_input : bool,默认False,为True时及计算直接在数组内存计算,计算后原数组无法保存interpolation : 取值范围{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}默认liner,比如取中位数,但是中位数有两个数字6和7,选不同参数来调整输出keepdims : bool,默认False,为真时取中位数的那个轴将保留在结果中

a=np.array([[10, 7, 4], [3, 2, 1]])
a
”’
array([[10, 7, 4],
[ 3, 2, 1]])
”’
np.percentile(a, 50)
#3.5
np.percentile(a, 50, axis=0)
#array([[ 6.5, 4.5, 2.5]])
np.percentile(a, 50, axis=1)
#array([ 7., 2.])
np.percentile(a, 50, axis=1, keepdims=True)
”’
array([[ 7.],
[ 2.]])
”’
DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation=’linear’)

q:float or array-like, default 0.5 (50% quantile),0 <=q <=1之间的值,即要计算的分位数axis:{0, 1, ‘index’, ‘columns’}, default 0,对于行,等于0或“索引”,对于列,等于1或“列”numeric_only:bool, default True,如果为False,则还将计算日期时间和时间增量数据的分位数interpolation:{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’},当所需分位数位于两个数据点i和j之间时,此可选参数指定要使用的插值方法

Series or DataFrame

如果是数组,则将返回DataFrame,其中index为,列为self的列,值为分位数。如果为float,则在index是self的列,值是分位数

df=pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),
columns=[‘a’, ‘b’])

df.quantile(.1)
”’
a 1.3
b 3.7
Name: 0.1, dtype: float64
”’
df.quantile([.1, .5])
”’
a b
0.1 1.3 3.7
0.5 2.5 55.0
”’

到此这篇关于Python中np.percentile和df.quantile分位数详解的文章就介绍到这了,更多相关np.percentile和df.quantile分位数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:python numpy库np.percentile用法说明

© 版权声明

相关文章