Fonction SciPy stats.zscore
-
La fonction
scipy.stats.zscore
-
Calcul du
z-score
d’un tableau unidimensionnel en Python -
Calcul du
z-score
pour un tableau multidimensionnel en Python -
Calcul du
z-score
pour unPandas Dataframe
en Python
z-score
est une méthode statistique qui aide à calculer combien de valeurs l’écart type est éloigné d’une valeur particulière de la valeur moyenne. Le z-score
est calculé à l’aide de la formule suivante.
z = (X – μ) / σ
Dans lequel,
- X est une valeur particulière des données
- μ est la valeur moyenne
- σ est l’écart type
Ce tutoriel montrera comment calculer la valeur z-score
de n’importe quelle donnée en Python à l’aide de la bibliothèque SciPy
.
La fonction scipy.stats.zscore
La fonction scipy.stats.zscore
de la bibliothèque SciPy
permet de calculer le z-score
relatif des données brutes d’entrée données ainsi que la moyenne et l’écart type des données. Il est défini comme scipy.stats.zscore(a, axis, ddof, nan_policy)
.
Voici les paramètres de la fonction scipy.stats.zscore
.
a (tableau) |
Un objet de type tableau des données d’entrée brutes. |
axis (int) |
Il définit l’axe le long duquel la fonction calcule la valeur z-score . La valeur par défaut est 0 , c’est-à-dire que la fonction calcule sur l’ensemble du tableau. |
ddof (int) |
Il définit la correction du degré de liberté dans l’ensemble du calcul de l’écart type. |
nan_policy |
Ce paramètre décide de la façon de gérer les valeurs NaN dans les données d’entrée. Il y a trois paramètres de décision dans le paramètre, propagate , raise , omit . propagate renvoie simplement la valeur NaN, raise renvoie une erreur et omit ignore simplement les valeurs NaN et la fonction continue le calcul. Ces paramètres de décision sont définis entre guillemets simples '' . De plus, les valeurs NaN n’affectent jamais la valeur z-score qui est calculée pour les autres valeurs présentes dans les données d’entrée. |
Tous les paramètres sauf le paramètre a (array)
sont facultatifs. Cela signifie qu’il n’est pas nécessaire de les définir à chaque fois lors de l’utilisation de la fonction scipy.stats.zscore
.
Maintenant, utilisons la fonction scipy.stats.zscore
sur un tableau unidimensionnel
, un tableau multidimensionnel
, et un Dataframe Pandas
.
Calcul du z-score
d’un tableau unidimensionnel en 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)
Production :
array([-1.3916106 , -1.09379511, -0.49816411, 0.39528239, -0.20034861,
-0.37903791, -0.55772721, -0.55772721, 1.28872889, 0.99091339,
2.00348608])
Notez que chaque valeur de z-score
indique à combien de valeurs d’écart type sa valeur correspondante est éloignée de la valeur moyenne. Ici, le signe négatif
représente que cette valeur est de plusieurs écarts-types en dessous
de la valeur moyenne, et le signe positif représente que cette valeur est de plusieurs écarts-types au-dessus
de la valeur moyenne. Si une valeur z-score
s’avère être 0
, alors cette valeur est 0
valeurs d’écart type loin de la valeur moyenne.
Calcul du z-score
pour un tableau multidimensionnel en 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)
Production :
array([-1.3916106 , -1.09379511, -0.49816411, 0.39528239, -0.20034861,
-0.37903791, -0.55772721, -0.55772721, 1.28872889, 0.99091339,
2.00348608])
Calcul du z-score
pour un Pandas Dataframe
en Python
Pour cela, nous utiliserons la fonction randint()
de la bibliothèque NumPy
. Cette fonction est utilisée pour générer des nombres d’échantillons aléatoires et les stocker sous la forme d’un tableau NumPy
. Après avoir créé le tableau NumPy
, nous utiliserons ce tableau comme 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)
Production :
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
Notez que la fonction apply()
de la bibliothèque Pandas
est utilisée pour calculer la valeur z-score
pour chaque valeur dans la trame de données donnée. Cette fonction est utilisée pour appliquer une fonction spécifique définie comme argument de fonction de la fonction apply()
à chaque valeur de la série Pandas ou de la trame de données.
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