Calcola il percentile in Python

Azaz Farooq 25 aprile 2021
  1. Calcola il percentile in Python usando il pacchetto scipy
  2. Calcola il percentile in Python usando il pacchetto NumPy
  3. Calcola il percentile in Python usando il pacchetto math
  4. Calcola il percentile in Python usando il pacchetto statistics
  5. Calcola il percentile in Python usando il metodo di interpolazione lineare di NumPy
  6. Calcola il percentile in Python usando il metodo di interpolazione inferiore di NumPy
  7. Calcola il percentile in Python usando il metodo di interpolazione superiore di NumPy
  8. Calcola il percentile in Python usando il metodo di interpolazione del punto medio di NumPy
Calcola il percentile in Python

I percentili indicano la percentuale di punteggi che scendono al di sotto di un determinato valore. Un individuo con un QI di 120, ad esempio, è al 91° percentile, il che significa che il suo QI è superiore al 91% delle altre persone.

Questo articolo discuterà alcuni metodi per calcolare il percentile in Python.

Calcola il percentile in Python usando il pacchetto scipy

Questo pacchetto calcolerà il punteggio della serie di input a un dato percentile. La sintassi della funzione scoreatpercentile() è riportata di seguito:

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

Nella funzione scoreatpercentile(), il parametro a rappresenta un array 1-D, e per specifica il percentile compreso tra 0 e 100. Gli altri due parametri sono opzionali. La libreria NumPy viene utilizzata per ottenere i numeri su cui abbiamo calcolato il percentile.

Di seguito viene fornito il codice di esempio completo.

from scipy import stats
import numpy as np

array = np.arange(100)

percentile = stats.scoreatpercentile(array, 50)

print("The percentile is:", percentile)

Produzione:

The percentile is: 49.5

Calcola il percentile in Python usando il pacchetto NumPy

Questo pacchetto ha una funzione percentile() che calcolerà il percentile di un dato array. Di seguito viene fornita la sintassi della funzione percentile().

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

Il parametro q rappresenta il numero di calcolo del percentile. a rappresenta un array mentre gli altri parametri sono opzionali.

Di seguito viene fornito il codice di esempio completo.

import numpy as np

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

percentile = np.percentile(arry, 50)

print("The percentile is:", percentile)

Produzione:

The percentile is: 8.0

Calcola il percentile in Python usando il pacchetto math

Il pacchetto math con la sua funzione di base - ceil può essere utilizzato per calcolare diversi percentili.

Di seguito viene fornito il codice di esempio completo.

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)

Il math.ceil(x) arrotonda il valore e restituisce il più piccolo intero maggiore o uguale a x, mentre la funzione sorted ordina l’array.

Produzione:

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

Calcola il percentile in Python usando il pacchetto statistics

La funzione quantiles() nel pacchetto statistics è usata per scomporre i dati in uguale probabilità e restituire una lista di distribuzione di n-1. La sintassi di questa funzione è fornita di seguito.

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

Di seguito viene fornito il codice di esempio completo.

from statistics import quantiles

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

percentle = quantiles(data, n=4)

print("The Percentile is:", percentle)

Produzione:

The Percentile is: [1.5, 3.0, 4.5]

Calcola il percentile in Python usando il metodo di interpolazione lineare di NumPy

Possiamo calcolare diversi percentili utilizzando la modalità di interpolazione. Le modalità di interpolazione sono linear, lower, higher, midpoint e nearest. Queste interpolazioni vengono utilizzate quando i percentili si trovano tra due punti dati, i e j. Quando il valore percentile è i, è la modalità di interpolazione inferiore, j rappresenta la modalità di interpolazione più alta e i + (j - i) * fraction rappresenta la modalità lineare dove fraction indica l’indice circondato da i E j.

Di seguito viene fornito il codice di esempio completo per la modalità di interpolazione lineare.

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

Usiamo la funzione numpy.percentile() con il parametro aggiuntivo interpolation. Puoi vedere che otteniamo valori float per questa interpolazione.

Produzione:

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

Calcola il percentile in Python usando il metodo di interpolazione inferiore di NumPy

Di seguito viene fornito il codice di esempio completo per la modalità di interpolazione inferiore.

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

Produzione:

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

Puoi vedere che il percentile finale viene spostato al valore più basso.

Calcola il percentile in Python usando il metodo di interpolazione superiore di NumPy

Questo metodo assegnerà i percentili di un array data al valore di arrotondamento più alto.

Di seguito viene fornito il codice di esempio completo per la modalità di interpolazione superiore.

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

Produzione:

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

Calcola il percentile in Python usando il metodo di interpolazione del punto medio di NumPy

Questo metodo fornirà i punti medi dei valori percentili.

Di seguito viene fornito il codice di esempio completo per la modalità di interpolazione del punto medio.

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

Produzione:

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

Articolo correlato - Python Math

Articolo correlato - Python NumPy