SciPy stats.zscore Funktion

Lakshay Kapoor 30 Januar 2023
  1. Die scipy.stats.zscore-Funktion
  2. Berechnung des z-score für ein eindimensionales Array in Python
  3. Berechnung des z-score für ein Multi-Dimensional Array in Python
  4. Berechnung des z-score für einen Pandas Dataframe in Python
SciPy stats.zscore Funktion

z-score ist eine statistische Methode, die hilft zu berechnen, wie viele Werte die Standardabweichung um einen bestimmten Wert vom Mittelwert entfernt ist. Der z-score wird mit Hilfe der folgenden Formel berechnet.

z = (X – μ) / σ

In welchem,

  • X ist ein bestimmter Wert aus den Daten
  • μ ist der Mittelwert
  • σ ist die Standardabweichung

Dieses Tutorial zeigt, wie man den z-score-Wert beliebiger Daten in Python mit der SciPy-Bibliothek berechnet.

Die scipy.stats.zscore-Funktion

Die Funktion scipy.stats.zscore der SciPy-Bibliothek hilft bei der Berechnung des relativen z-score der gegebenen Eingabe-Rohdaten zusammen mit dem Mittelwert und der Standardabweichung der Daten. Es ist definiert als scipy.stats.zscore(a, axis, ddof, nan_policy).

Nachfolgend sind die Parameter der Funktion scipy.stats.zscore aufgeführt.

a (Array) Ein Array-ähnliches Objekt der rohen Eingabedaten.
axis (int) Es definiert die Achse, entlang der die Funktion den z-score-Wert berechnet. Der Standardwert ist 0, d.h. die Funktion rechnet über das ganze Array.
ddof (int) Es definiert die Freiheitsgradkorrektur in der gesamten Berechnung der Standardabweichung.
nan_policy Dieser Parameter entscheidet, wie mit NaN-Werten in den Eingabedaten umgegangen wird. Im Parameter gibt es drei Entscheidungsparameter, propagate, raise, omit. propagate gibt einfach den NaN-Wert zurück, raise gibt einen Fehler zurück und omit ignoriert einfach die NaN-Werte und die Funktion fährt mit der Berechnung fort. Diese Entscheidungsparameter werden in einfachen Anführungszeichen '' definiert. Außerdem wirken sich NaN-Werte niemals auf den z-score-Wert aus, der für die anderen in den Eingabedaten vorhandenen Werte berechnet wird.

Alle Parameter außer dem Parameter a (array) sind optional. Das bedeutet, dass Sie sie nicht jedes Mal definieren müssen, wenn Sie die Funktion scipy.stats.zscore verwenden.

Nun wollen wir die Funktion scipy.stats.zscore auf Eindimensionale Arrays, Mehrdimensionale Arrays und Pandas Dataframe anwenden.

Berechnung des z-score für ein eindimensionales Array in Python

import numpy as np
import scipy.stats as stats

input_data = np.array([5, 10, 20, 35, 25, 22, 19, 19, 50, 45, 62])

stats.zscore(input_data)

Ausgabe:

array([-1.3916106 , -1.09379511, -0.49816411,  0.39528239, -0.20034861,
       -0.37903791, -0.55772721, -0.55772721,  1.28872889,  0.99091339,
        2.00348608])

Beachten Sie, dass jeder z-score-Wert angibt, wie viele Standardabweichungswerte der entsprechende Wert vom Mittelwert entfernt ist. Dabei bedeutet das negative Vorzeichen, dass dieser Wert um so viele Standardabweichungen unter dem Mittelwert liegt, und das positive Vorzeichen, dass dieser Wert um so viele Standardabweichungen über dem Mittelwert liegt. Wenn ein z-score-Wert 0 ergibt, dann ist dieser Wert 0 Standardabweichungswerte vom Mittelwert entfernt.

Berechnung des z-score für ein Multi-Dimensional Array in Python

import numpy as np
import scipy.stats as stats

data = np.array([[5, 10, 20, 35], [25, 22, 19, 19], [50, 45, 62, 28], [24, 45, 15, 30]])

stats.zscore(input_data)

Ausgabe:

array([-1.3916106 , -1.09379511, -0.49816411,  0.39528239, -0.20034861,
       -0.37903791, -0.55772721, -0.55772721,  1.28872889,  0.99091339,
        2.00348608])

Berechnung des z-score für einen Pandas Dataframe in Python

Dabei verwenden wir die Funktion randint() der Bibliothek NumPy. Mit dieser Funktion werden zufällige Stichprobennummern generiert und in Form eines NumPy-Arrays gespeichert. Nachdem wir das NumPy-Array erstellt haben, verwenden wir dieses Array als Pandas Dataframe.

import pandas as pd
import numpy as np
import scipy.stats as stats

input_data = pd.DataFrame(
    np.random.randint(0, 30, size=(4, 4)), columns=["W", "X", "Y", "Z"]
)
print(input_data)
    W   X   Y   Z
0   7   9   2  15
1  11  23  15  28
2  28  11  25   2
3  11  19  14  15
input_data.apply(stats.zscore)

Ausgabe:

          W	        X	        Y	        Z
0	-0.894534	-1.135815	-1.471534	 0.000000
1	-0.400998	 1.310556	 0.122628	 1.414214
2	 1.696529	-0.786334	 1.348907	-1.414214
3	-0.400998	 0.611593	 0.000000	 0.000000

Beachten Sie, dass die apply()-Funktion der Pandas-Bibliothek verwendet wird, um den z-score-Wert für jeden Wert im angegebenen Datenrahmen zu berechnen. Diese Funktion wird verwendet, um eine bestimmte Funktion, die als Funktionsargument der Funktion apply() definiert ist, auf jeden Wert der Pandas-Reihe oder des Datenrahmens anzuwenden.

Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn

Verwandter Artikel - SciPy Stats