📜  Python中的numpy.percentile()(1)

📅  最后修改于: 2023-12-03 15:19:27.403000             🧑  作者: Mango

Python中的numpy.percentile()

简介

numpy.percentile()是NumPy中的一个函数,用于计算一个数组中给定百分位数所对应值。它可以计算任何维度、任何形状的数组的百分位数。

语法
numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)
参数
  • a:包含数据的数组;
  • q:需要计算的百分位数,可以是一个数值,也可以是多个数值的序列。
  • axis:沿着哪个轴计算百分位数,默认值None表示对整个数组进行计算;
  • out:计算结果存储的数组;
  • overwrite_input:是否允许重写输入数组;
  • interpolation:百分位数实际不存在时采取的插值方式;
  • keepdims:是否保持输出数组和输入数组形状相同。
返回值

返回值是一个与输入数组形状相同的数组,包含指定百分位数所对应的值。

示例
import numpy as np

a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(np.percentile(a, 50))      # 计算50th百分位数
print(np.percentile(a, [25, 75])) # 计算25th和75th百分位数

输出结果:

5.0
[2. 8.]
插值方式

在计算百分位数时,有时会遇到不存在数据的情况,此时可以通过插值方式获取百分位数对应的值。numpy.percentile()支持以下插值方式:

  • nearest:最接近的数值。
  • linear:线性插值。(默认)
  • lower:总是使用小于等于百分位数的值。
  • higher:总是使用大于等于百分位数的值。
  • midpoint:总是使用百分位数两边的数值的平均值。
示例
a = np.array([1, 2, 3, 4, 5])
print(np.percentile(a, 30, interpolation='nearest'))  # 1
print(np.percentile(a, 30, interpolation='linear'))   # 1.6
print(np.percentile(a, 30, interpolation='lower'))    # 1
print(np.percentile(a, 30, interpolation='higher'))   # 2
print(np.percentile(a, 30, interpolation='midpoint')) # 1.5
总结

numpy.percentile()是一个功能强大的函数,用于计算任何形状、任何维度的数组的百分位数。在使用过程中,可以设置插值方式,获取百分位数对应的值。