Berechnen des Perzentils in Python

Azaz Farooq 30 Januar 2023
  1. Perzentilberechnung in Python mit dem Paket scipy
  2. Perzentilberechnung in Python mit dem NumPy-Paket
  3. Perzentilberechnung in Python mit dem math-Paket
  4. Perzentilberechnung in Python mit dem Paket statistics
  5. Perzentilberechnung in Python mit der linearen Interpolationsmethode von NumPy
  6. Perzentilberechnung in Python mit der unteren Interpolationsmethode von NumPy
  7. Perzentilberechnung in Python mit der höheren Interpolationsmethode von NumPy
  8. Perzentilberechnung in Python mit der NumPy-Mittelpunkt-Interpolationsmethode
Berechnen des Perzentils in Python

Perzentile geben den Prozentsatz der Werte an, die unter einen bestimmten Wert fallen. Eine Person mit einem IQ von 120 liegt zum Beispiel auf dem 91. Perzentil, was bedeutet, dass ihr IQ höher ist als der von 91 % der anderen Personen.

In diesem Artikel werden einige Methoden zur Berechnung von Perzentilen in Python besprochen.

Perzentilberechnung in Python mit dem Paket scipy

Dieses Paket berechnet den Wert der Eingabereihe zu einem bestimmten Perzentil. Die Syntax der Funktion scoreatpercentile() ist unten angegeben:

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

In der Funktion scoreatpercentile() stellt der Parameter a ein 1-D-Array dar, und per gibt das Perzentil im Bereich von 0 bis 100 an. Die beiden anderen Parameter sind optional. Die NumPy-Bibliothek wird verwendet, um die Zahlen zu erhalten, auf denen wir das Perzentil berechnet haben.

Der vollständige Beispielcode ist unten angegeben.

from scipy import stats
import numpy as np

array = np.arange(100)

percentile = stats.scoreatpercentile(array, 50)

print("The percentile is:", percentile)

Ausgabe:

The percentile is: 49.5

Perzentilberechnung in Python mit dem NumPy-Paket

Dieses Paket hat eine Funktion percentile(), die das Perzentil eines gegebenen Arrays berechnet. Die Syntax der Funktion percentile() ist unten angegeben.

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

Der Parameter q repräsentiert die Nummer der Perzentilberechnung. a repräsentiert ein Array, während die anderen Parameter optional sind.

Der vollständige Beispielcode ist unten angegeben.

import numpy as np

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

percentile = np.percentile(arry, 50)

print("The percentile is:", percentile)

Ausgabe:

The percentile is: 8.0

Perzentilberechnung in Python mit dem math-Paket

Das math-Paket mit seiner Grundfunktion - ceil - kann zur Berechnung verschiedener Perzentile verwendet werden.

Der vollständige Beispielcode ist unten angegeben.

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)

Die Funktion math.ceil(x) rundet den Wert ab und liefert die kleinste ganze Zahl, die größer oder gleich x ist, während die Funktion sorted das Array sortiert.

Ausgabe:

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

Perzentilberechnung in Python mit dem Paket statistics

Die Funktion quantiles() im Paket statistics wird verwendet, um die Daten in gleiche Wahrscheinlichkeiten zu zerlegen und eine Verteilungsliste von n-1 zurückzugeben. Die Syntax dieser Funktion ist unten angegeben.

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

Der vollständige Beispielcode ist unten angegeben.

from statistics import quantiles

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

percentle = quantiles(data, n=4)

print("The Percentile is:", percentle)

Ausgabe:

The Percentile is: [1.5, 3.0, 4.5]

Perzentilberechnung in Python mit der linearen Interpolationsmethode von NumPy

Wir können verschiedene Perzentile mit Hilfe des Interpolationsmodus berechnen. Die Interpolationsmodi sind linear, lower, higher, midpoint, und nearest. Diese Interpolationen werden verwendet, wenn die Perzentile zwischen zwei Datenpunkten, i und j, liegen. Wenn der Perzentilwert i ist, handelt es sich um den unteren Interpolationsmodus, j repräsentiert den höheren Interpolationsmodus und i + (j - i) * fraction repräsentiert den linearen Modus, wobei fraction den von i und j umgebenen Index angibt.

Der vollständige Beispielcode für den linearen Interpolationsmodus ist unten angegeben.

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

Wir verwenden die Funktion numpy.percentile() mit dem zusätzlichen Parameter interpolation. Sie können sehen, dass wir Float-Werte für diese Interpolation erhalten.

Ausgabe:

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

Perzentilberechnung in Python mit der unteren Interpolationsmethode von NumPy

Der vollständige Beispielcode für die untere Interpolationsmethode ist unten angegeben.

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

Ausgabe:

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

Sie sehen, dass das endgültige Perzentil auf den niedrigsten Wert abgerundet wird.

Perzentilberechnung in Python mit der höheren Interpolationsmethode von NumPy

Diese Methode gibt Perzentile des gegebenen Arrays auf den höchsten abgerundeten Wert aus.

Der vollständige Beispielcode für die höhere Interpolationsmethode ist unten angegeben.

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

Ausgabe:

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

Perzentilberechnung in Python mit der NumPy-Mittelpunkt-Interpolationsmethode

Diese Methode liefert die Mittelwerte der Perzentilwerte.

Der vollständige Beispielcode für den Midpoint-Interpolationsmodus ist unten angegeben.

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

Ausgabe:

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

Verwandter Artikel - Python Math

Verwandter Artikel - Python NumPy