numpy percentile
1. 概述
在数据分析和统计学中,分位数(percentile) 是一个常用的概念。分位数是指将一组数据划分为几个等份,每一份所包含的数据个数大致相同。numpy 是一个广泛使用的 Python 第三方库,提供了丰富的数学函数和高效的数组操作。numpy.percentile
函数可以帮助我们计算一组数据的分位数。
本文将详细介绍 numpy 中的 percentile
函数的使用方法和相关注意事项。
2. percentile
函数的语法
numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)
a
: 输入的数组,可以是列表、元组或 numpy 数组。q
: 要计算的分位数或分位数数组,取值范围为 0~100 之间的实数或一维数组。axis
(可选): 沿着该轴进行计算,默认为 None,即计算整个数组的分位数。out
(可选): 可选参数,用于存储结果的数组。overwrite_input
(可选): 若为 True,则允许将 a 内存中的数据进行覆盖以节省内存。interpolation
(可选): 用于指定如何处理无效的输入数据,默认为 ‘linear’。
3. percentile
函数的使用示例
下面通过几个示例来演示 numpy.percentile
的使用方法。
示例 1: 计算给定数据集的中位数
首先,我们来计算给定数据集的中位数。假设我们有一个数组 data
,包含了一组数据。我们可以使用 numpy.percentile
函数来计算中位数。
import numpy as np
data = np.array([2, 7, 4, 1, 5, 9, 3, 8, 6])
median = np.percentile(data, 50)
print("中位数:", median)
输出为:
中位数: 5.0
示例 2: 计算给定数据集的四分位数
四分位数是指将一组数据按照中位数划分为四份,分别为第一四分位数、中位数和第三四分位数。我们可以使用 numpy.percentile
函数来计算给定数据集的四分位数。
import numpy as np
data = np.array([2, 7, 4, 1, 5, 9, 3, 8, 6])
q1 = np.percentile(data, 25)
q2 = np.percentile(data, 50)
q3 = np.percentile(data, 75)
print("第一四分位数:", q1)
print("中位数:", q2)
print("第三四分位数:", q3)
输出为:
第一四分位数: 3.0
中位数: 5.0
第三四分位数: 7.0
示例 3: 沿指定轴计算分位数
在示例 1 和示例 2 中,我们对整个数组进行了分位数计算。但是,有些时候我们可能需要沿着指定的轴计算分位数。下面的示例将演示如何进行沿轴的分位数计算。
import numpy as np
data = np.array([[2, 7, 4], [1, 5, 9], [3, 8, 6]])
# 沿着行计算第一四分位数
row_q1 = np.percentile(data, 25, axis=1)
print("沿着行计算第一四分位数:", row_q1)
# 沿着列计算第三四分位数
col_q3 = np.percentile(data, 75, axis=0)
print("沿着列计算第三四分位数:", col_q3)
输出为:
沿着行计算第一四分位数: [ 3. 4.5 5.5]
沿着列计算第三四分位数: [ 3. 7. 6.]
示例 4: 使用不同的插值方法
numpy.percentile
函数还可以通过 interpolation
参数来指定插值方法。插值方法决定了如何处理无效的输入数据。默认情况下,插值方法为 'linear'
。
下面的示例将演示如何使用不同的插值方法。
import numpy as np
data = np.array([2, np.nan, 4, 1, 5, np.nan, 3, 8, 6])
p1 = np.percentile(data, 50)
print("使用'linear'插值方法的中位数:", p1)
p2 = np.percentile(data, 50, interpolation='lower')
print("使用'lower'插值方法的中位数:", p2)
p3 = np.percentile(data, 50, interpolation='higher')
print("使用'higher'插值方法的中位数:", p3)
p4 = np.percentile(data, 50, interpolation='nearest')
print("使用'nearest'插值方法的中位数:", p4)
输出为:
使用'linear'插值方法的中位数: 4.0
使用'lower'插值方法的中位数: 3.0
使用'higher'插值方法的中位数: 5.0
使用'nearest'插值方法的中位数: 4.0
4. 总结
本文介绍了 numpy 库中的 numpy.percentile
函数的使用方法和相关注意事项。我们可以使用该函数计算给定数据集的分位数,并且可以指定沿着指定轴计算分位数,以及选择不同的插值方法。