Python 中的 numpy.percentile() 函数详解

当我们需要在数据处理中了解数据的分布情况时,计算百分位数是一个非常实用的方法。今天,让我们一起深入探讨 NumPy 库中的 numpy.percentile() 函数,看看它是如何帮助我们计算数据的第 q 个百分位数的。

百分位数是一个统计指标,它表示在一个数组中,有多少百分比的观测值会低于某个特定值。让我们通过一个简单的例子来看看它的基本用法。

示例:

import numpy as np
a = np.array([1, 3, 5, 7, 9])
res = np.percentile(a, 50)
print(res)

输出

5.0

语法

> numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation=‘linear‘, keepdims=False, method=‘linear‘)

参数说明:

参数

描述

a

输入数组,或者是可以转换为数组的对象

q

需要计算的百分位数(范围 0–100)。可以是标量或者类数组对象

axis

沿着哪个轴计算百分位数。默认为 None(将数组展平)

out

可选的输出数组,用于存放结果

overwrite_input

如果为 True,为了节省内存,允许修改输入数组

interpolation

(已弃用)请改用 method 参数

method

计算百分位数的方法:‘linear‘(线性)、‘lower‘(取下限)、‘higher‘(取上限)、‘midpoint‘(中点)、‘nearest‘(最近值)

keepdims

如果为 True,结果中会保留缩减后的轴,且其维度大小为一返回值: 返回数组元素的第 q 个百分位数。如果 q 是一个列表,则会返回多个百分位数。

代码示例

示例 1: 在这个例子中,我们将计算一个一维数组的第 25、50 和 75 百分位数。

import numpy as np
a = np.array([10, 20, 30, 40, 50])
res = np.percentile(a, [25, 50, 75])
print(res)

输出

[20. 30. 40.]

示例 2: 在这里,我们利用 axis 参数来计算一个二维数组中每一行的第 50 百分位数(即中位数)。

import numpy as np
a = np.array([[10, 7, 4], [3, 2, 1]])
res = np.percentile(a, 50, axis=1)
print(res)

输出

[7. 2.]

示例 3: 让我们尝试使用 method=‘lower‘ 选项来计算第 50 百分位数(中位数)。

import numpy as np
a = np.array([1, 2, 3, 4])
res = np.percentile(a, 50, method=‘lower‘)
print(res)

输出

2

示例 4: 最后,我们来看一个二维数组,在计算每一行的第 50 百分位数时,我们设置 keepdims=True 以保留原始的维度信息。

import numpy as np
a = np.array([[10, 20, 30], [40, 50, 60]])
res = np.percentile(a, 50, axis=1, keepdims=True)
print(res)

输出

[[20.]
 [50.]]
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43102.html
点赞
0.00 平均评分 (0% 分数) - 0