Calcular percentil en Python

Azaz Farooq 30 enero 2023
  1. Calcule el percentil en Python usando el paquete scipy
  2. Calcule el percentil en Python usando el paquete NumPy
  3. Calcule el percentil en Python usando el paquete math
  4. Calcule el percentil en Python usando el paquete statistics
  5. Calcule el percentil en Python usando el método de interpolación lineal de NumPy
  6. Calcule el percentil en Python usando el método de interpolación inferior de NumPy
  7. Calcule el percentil en Python usando el método de interpolación superior de NumPy
  8. Calcule el percentil en Python usando el método de interpolación de punto medio de NumPy
Calcular percentil en Python

Los percentiles indican el porcentaje de puntuaciones que caen por debajo de cierto valor. Un individuo con un coeficiente intelectual de 120, por ejemplo, se encuentra en el percentil 91, lo que significa que su coeficiente intelectual es mayor que el 91% de otras personas.

Este artículo discutirá algunos métodos para calcular el percentil en Python.

Calcule el percentil en Python usando el paquete scipy

Este paquete calculará la puntuación de la serie de entrada en un percentil determinado. La sintaxis de la función scoreatpercentile() se da a continuación:

scipy.stats.scoreatpercentile(
    a, per, limit=(), interpolation_method="fraction", axis=None
)

En la función scoreatpercentile(), el parámetro a representa un array 1-D, y per especifica el percentil que va de 0 a 100. Los otros dos parámetros son opcionales. La biblioteca NumPy se utiliza para obtener los números sobre los que calculamos el percentil.

El código de ejemplo completo se proporciona a continuación.

from scipy import stats
import numpy as np

array = np.arange(100)

percentile = stats.scoreatpercentile(array, 50)

print("The percentile is:", percentile)

Producción :

The percentile is: 49.5

Calcule el percentil en Python usando el paquete NumPy

Este paquete tiene una función percentile() que calculará el percentil de un array dada. La sintaxis de la función percentile() se da a continuación.

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

El parámetro q representa el número de cálculo del percentil. a representa un array, mientras que los demás parámetros son opcionales.

El código de ejemplo completo se proporciona a continuación.

import numpy as np

arry = np.array([4, 6, 8, 10, 12])

percentile = np.percentile(arry, 50)

print("The percentile is:", percentile)

Producción :

The percentile is: 8.0

Calcule el percentil en Python usando el paquete math

El paquete math con su función básica - ceil se puede utilizar para calcular diferentes percentiles.

El código de ejemplo completo se proporciona a continuación.

import math

arry = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


def calculate_percentile(arry, percentile):
    size = len(arry)
    return sorted(arry)[int(math.ceil((size * percentile) / 100)) - 1]


percentile_25 = calculate_percentile(arry, 25)
percentile_50 = calculate_percentile(arry, 50)
percentile_75 = calculate_percentile(arry, 75)

print("The 25th percentile is:", percentile_25)
print("The 50th percentile is:", percentile_50)
print("The 75th percentile is:", percentile_75)

El math.ceil(x) redondea el valor y devuelve el número entero más pequeño mayor o igual que x, mientras que la función sorted ordena el array.

Producción :

The 25th percentile is: 3
The 50th percentile is: 5
The 75th percentile is: 8

Calcule el percentil en Python usando el paquete statistics

La función quantiles() en el paquete de statistics se utiliza para dividir los datos en probabilidades iguales y devolver una lista de distribución de n-1. La sintaxis de esta función se da a continuación.

statistics.quantiles(data, *, n=4, method='exclusive')

El código de ejemplo completo se proporciona a continuación.

from statistics import quantiles

data = [1, 2, 3, 4, 5]

percentle = quantiles(data, n=4)

print("The Percentile is:", percentle)

Producción :

The Percentile is: [1.5, 3.0, 4.5]

Calcule el percentil en Python usando el método de interpolación lineal de NumPy

Podemos calcular diferentes percentiles usando el modo de interpolación. Los modos de interpolación son linear, lower, higher, midpoint y nearest. Estas interpolaciones se utilizan cuando los percentiles se encuentran entre dos puntos de datos, i y j. Cuando el valor del percentil es i, es el modo de interpolación inferior, j representa el modo de interpolación superior y i + (j - i) * fraction representa el modo lineal donde fraction indica el índice rodeado por i Y j.

El código de ejemplo completo para el modo de interpolación lineal se proporciona a continuación.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "linear")

percentile_10 = np.percentile(arry, 10, interpolation="linear")
percentile_50 = np.percentile(arry, 50, interpolation="linear")
percentile_75 = np.percentile(arry, 75, interpolation="linear")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Usamos la función numpy.percentile() con el parámetro adicional interpolation. Puede ver que obtenemos valores float para esta interpolación.

Producción :

percentiles using interpolation =  linear
percentile_10 =  1.9 , median =  5.5  and percentile_75 =  7.75

Calcule el percentil en Python usando el método de interpolación inferior de NumPy

El código de ejemplo completo para el modo de interpolación inferior se proporciona a continuación.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "lower")

percentile_10 = np.percentile(arry, 10, interpolation="lower")
percentile_50 = np.percentile(arry, 50, interpolation="lower")
percentile_75 = np.percentile(arry, 75, interpolation="lower")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Producción :

percentiles using interpolation =  lower
percentile_10 =  1 , median =  5  and percentile_75 =  7

Puede ver que el percentil final se desvía al valor más bajo.

Calcule el percentil en Python usando el método de interpolación superior de NumPy

Este método dará percentiles del array dado dada al valor de redondeo más alto.

El código de ejemplo completo para el modo de interpolación superior se proporciona a continuación.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "higher")

percentile_10 = np.percentile(arry, 10, interpolation="higher")
percentile_50 = np.percentile(arry, 50, interpolation="higher")
percentile_75 = np.percentile(arry, 75, interpolation="higher")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Producción :

percentiles using interpolation =  higher
percentile_10 =  2 , median =  6  and percentile_75 =  8

Calcule el percentil en Python usando el método de interpolación de punto medio de NumPy

Este método dará los puntos medios de los valores percentiles.

El código de ejemplo completo para el modo de interpolación de punto medio se proporciona a continuación.

import numpy as np

arry = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print("percentiles using interpolation = ", "midpoint")

percentile_10 = np.percentile(arry, 10, interpolation="midpoint")
percentile_50 = np.percentile(arry, 50, interpolation="midpoint")
percentile_75 = np.percentile(arry, 75, interpolation="midpoint")

print(
    "percentile_10 = ",
    percentile_10,
    ", median = ",
    percentile_50,
    " and percentile_75 = ",
    percentile_75,
)

Producción :

percentiles using interpolation =  midpoint
percentile_10 =  1.5 , median =  5.5  and percentile_75 =  7.5

Artículo relacionado - Python Math

Artículo relacionado - Python NumPy