Calculer le percentile en Python

Azaz Farooq 30 janvier 2023
  1. Calculer le percentile en Python en utilisant le paquet scipy
  2. Calculer le percentile en Python en utilisant le paquet NumPy
  3. Calculer le centile en Python en utilisant le paquet math
  4. Calculer le centile en Python en utilisant le paquet statistics
  5. Calculer le centile en Python en utilisant la méthode d’interpolation linéaire de NumPy
  6. Calculer le percentile en Python en utilisant la méthode d’interpolation inférieure de NumPy
  7. Calculer le percentile en Python en utilisant la méthode d’interpolation supérieure de NumPy
  8. Calculer le centile en Python en utilisant la méthode d’interpolation du point médian de NumPy
Calculer le percentile en Python

Les percentiles indiquent le pourcentage de notes qui se situent en dessous d’une certaine valeur. Une personne ayant un QI de 120, par exemple, se situe au 91e percentile, ce qui signifie que son QI est supérieur à 91 % des autres personnes.

Cet article traite de certaines méthodes de calcul du centile en Python.

Calculer le percentile en Python en utilisant le paquet scipy

Ce paquet calculera le score de la série d’entrées à un percentile donné. La syntaxe de la fonction scoreatpercentile() est donnée ci-dessous :

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

Dans la fonction scoreatpercentile(), le paramètre a représente un tableau 1-D, et per spécifie le percentile allant de 0 à 100. Les deux autres paramètres sont facultatifs. La bibliothèque NumPy est utilisée pour obtenir les nombres sur lesquels nous avons calculé le percentile.

L’exemple de code complet est donné ci-dessous.

from scipy import stats
import numpy as np

array = np.arange(100)

percentile = stats.scoreatpercentile(array, 50)

print("The percentile is:", percentile)

Production :

The percentile is: 49.5

Calculer le percentile en Python en utilisant le paquet NumPy

Ce paquet a une fonction percentile() qui calculera le percentile d’un tableau donné. La syntaxe de la fonction percentile() est donnée ci-dessous.

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

Le paramètre q représente le nombre de calcul du percentile. Le paramètre a représente un tableau tandis que les autres paramètres sont optionnels.

L’exemple de code complet est donné ci-dessous.

import numpy as np

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

percentile = np.percentile(arry, 50)

print("The percentile is:", percentile)

Production :

The percentile is: 8.0

Calculer le centile en Python en utilisant le paquet math

Le paquet math avec sa fonction de base - ceil peut être utilisé pour calculer différents centiles.

L’exemple de code complet est donné ci-dessous.

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)

Le paquet math.ceil(x) arrondit la valeur et renvoie le plus petit entier supérieur ou égal à x, tandis que la fonction sorted trie le tableau.

Production :

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

Calculer le centile en Python en utilisant le paquet statistics

La fonction quantiles() dans le paquet statistics est utilisée pour décomposer les données en probabilités égales et renvoyer une liste de distribution de n-1. La syntaxe de cette fonction est donnée ci-dessous.

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

L’exemple de code complet est donné ci-dessous.

from statistics import quantiles

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

percentle = quantiles(data, n=4)

print("The Percentile is:", percentle)

Production :

The Percentile is: [1.5, 3.0, 4.5]

Calculer le centile en Python en utilisant la méthode d’interpolation linéaire de NumPy

Nous pouvons calculer différents percentiles en utilisant le mode d’interpolation. Les modes d’interpolation sont linear, lower, higher, midpoint, et nearest. Ces interpolations sont utilisées lorsque les centiles sont entre deux points de données, i et j. Lorsque la valeur du centile est i, il s’agit du mode d’interpolation inférieur, j représente le mode d’interpolation supérieur et i + (j - i) * fraction représente le mode linéaire où fraction indique l’index entouré de i et j.

L’exemple complet de code pour le mode d’interpolation linéaire est donné ci-dessous.

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,
)

Nous utilisons la fonction numpy.percentile() avec un paramètre supplémentaire interpolation. Vous pouvez voir que nous obtenons des valeurs flottantes pour cette interpolation.

Production :

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

Calculer le percentile en Python en utilisant la méthode d’interpolation inférieure de NumPy

L’exemple complet de code pour le mode d’interpolation inférieur est donné ci-dessous.

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,
)

Production :

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

Vous pouvez voir que le percentile final est arrondi à la valeur la plus basse.

Calculer le percentile en Python en utilisant la méthode d’interpolation supérieure de NumPy

Cette méthode donnera les percentiles de l’ensemble donné à la valeur arrondie la plus élevée.

L’exemple complet de code pour le mode d’interpolation le plus élevé est donné ci-dessous.

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,
)

Production :

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

Calculer le centile en Python en utilisant la méthode d’interpolation du point médian de NumPy

Cette méthode donnera les points médians des valeurs de percentile.

L’exemple complet de code pour le mode d’interpolation des points médians est donné ci-dessous.

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,
)

Production :

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

Article connexe - Python Math

Article connexe - Python NumPy