Función SciPy stats.zscore
-
La función
scipy.stats.zscore
-
Calcular el
z-score
para unArray unidimensional
en Python -
Calcular el
z-score
de una matriz multidimensional en Python -
Cálculo del
z-score
para unPandas Dataframe
en Python
z-score
es un método estadístico que ayuda a calcular a cuántos valores la desviación estándar se aleja un valor particular del valor medio. El z-score
se calcula con la ayuda de la siguiente fórmula.
z = (X – μ) / σ
En el cual,
- X es un valor particular de los datos
- μ es el valor medio
- σ es la desviación estándar
Este tutorial mostrará cómo calcular el valor z-score
de cualquier dato en Python utilizando la biblioteca SciPy
.
La función scipy.stats.zscore
La función scipy.stats.zscore
de la librería SciPy
ayuda a calcular el valor relativo z-score
de los datos brutos de entrada dados junto con la media y la desviación estándar de los datos. Se define como scipy.stats.zscore(a, axis, ddof, nan_policy)
.
Los siguientes son los parámetros de la función scipy.stats.zscore
.
una (matriz) |
Un objeto similar a una matriz de los datos de entrada sin procesar. |
axis (int) |
Define el eje a lo largo del cual la función calcula el valor z-score . El valor predeterminado es 0 , es decir, la función calcula sobre todo el array. |
ddof (int) |
Define el grado de corrección de libertad en todo el cálculo de la desviación estándar. |
nan_policy |
Este parámetro decide cómo tratar cuando hay valores NaN en los datos de entrada. Hay tres parámetros de decisión en el parámetro, propagate , raise , omit . El parámetro propagate simplemente devuelve el valor NaN, raise devuelve un error y omit simplemente ignora los valores NaN y la función continúa con el cálculo. Estos parámetros de decisión se definen entre comillas simples '' . Además, los valores NaN nunca afectan al valor z-score que se calcula para los demás valores presentes en los datos de entrada. |
Todos los parámetros excepto el parámetro a (array)
son opcionales. Eso significa que no es necesario definirlos cada vez que se usa la función scipy.stats.zscore
.
Ahora, usemos la función scipy.stats.zscore
en matriz unidimensional
, matriz multidimensional
y Pandas Dataframe
.
Calcular el z-score
para un Array unidimensional
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)
Producción:
array([-1.3916106 , -1.09379511, -0.49816411, 0.39528239, -0.20034861,
-0.37903791, -0.55772721, -0.55772721, 1.28872889, 0.99091339,
2.00348608])
Tenga en cuenta que cada valor de puntuación z
indica a cuántos valores de desviación estándar se aleja su valor correspondiente del valor medio. Aquí, el signo negativo
representa que ese valor es esa cantidad de desviaciones estándar por debajo
del valor medio, y el signo positivo representa que ese valor es esa cantidad de desviaciones estándar por encima
del valor medio. Si un valor de z-score
resulta ser 0
, entonces ese valor está a 0
valores de desviación estándar del valor medio.
Calcular el z-score
de una matriz multidimensional 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)
Producción:
array([-1.3916106 , -1.09379511, -0.49816411, 0.39528239, -0.20034861,
-0.37903791, -0.55772721, -0.55772721, 1.28872889, 0.99091339,
2.00348608])
Cálculo del z-score
para un Pandas Dataframe
en Python
En este caso, utilizaremos la función randint()
de la librería NumPy
. Esta función se utiliza para generar números aleatorios de muestra y almacenarlos en forma de array NumPy
. Después de crear el array NumPy
, utilizaremos ese array como un 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)
Producción:
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
Observe que la función apply()
de la biblioteca Pandas
se utiliza para calcular el valor z-score
para cada valor en el dataframe dado. Esta función se utiliza para aplicar una función específica definida como argumento de la función apply()
a cada valor de la serie o dataframe de Pandas.
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