Función SciPy stats.zscore
-
La función
scipy.stats.zscore -
Calcular el
z-scorepara unArray unidimensionalen Python -
Calcular el
z-scorede una matriz multidimensional en Python -
Cálculo del
z-scorepara unPandas Dataframeen 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