SciPy stats.zscore Funktion
-
Die
scipy.stats.zscore
-Funktion -
Berechnung des
z-score
für eineindimensionales
Array in Python -
Berechnung des
z-score
für ein Multi-Dimensional Array in Python -
Berechnung des
z-score
für einenPandas Dataframe
in Python
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 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