NumPy - Funciones estadísticas

NumPy tiene bastantes funciones estadísticas útiles para encontrar la desviación estándar mínima, máxima, percentil y varianza, etc. de los elementos dados en la matriz. Las funciones se explican a continuación:

numpy.amin () y numpy.amax ()

Estas funciones devuelven el mínimo y el máximo de los elementos de la matriz dada a lo largo del eje especificado.

Ejemplo

import numpy as np 
a = np.array([[3,7,5],[8,4,3],[2,4,9]]) 

print 'Our array is:' 
print a  
print '\n'  

print 'Applying amin() function:' 
print np.amin(a,1) 
print '\n'  

print 'Applying amin() function again:' 
print np.amin(a,0) 
print '\n'  

print 'Applying amax() function:' 
print np.amax(a) 
print '\n'  

print 'Applying amax() function again:' 
print np.amax(a, axis = 0)

Producirá la siguiente salida:

Our array is:
[[3 7 5]
[8 4 3]
[2 4 9]]

Applying amin() function:
[3 3 2]

Applying amin() function again:
[2 4 3]

Applying amax() function:
9

Applying amax() function again:
[8 7 9]

numpy.ptp ()

los numpy.ptp() La función devuelve el rango (máximo-mínimo) de valores a lo largo de un eje.

import numpy as np 
a = np.array([[3,7,5],[8,4,3],[2,4,9]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying ptp() function:' 
print np.ptp(a) 
print '\n'  

print 'Applying ptp() function along axis 1:' 
print np.ptp(a, axis = 1) 
print '\n'   

print 'Applying ptp() function along axis 0:'
print np.ptp(a, axis = 0)

Producirá la siguiente salida:

Our array is:
[[3 7 5]
[8 4 3]
[2 4 9]]

Applying ptp() function:
7

Applying ptp() function along axis 1:
[4 5 7]

Applying ptp() function along axis 0:
[6 3 6]

numpy.percentile ()

El percentil (o un percentil) es una medida utilizada en estadísticas que indica el valor por debajo del cual cae un porcentaje determinado de observaciones en un grupo de observaciones. La funciónnumpy.percentile() toma los siguientes argumentos.

numpy.percentile(a, q, axis)

Dónde,

No Señor. Argumento y descripción
1

a

Matriz de entrada

2

q

El percentil a calcular debe estar entre 0-100

3

axis

El eje a lo largo del cual se calculará el percentil

Ejemplo

import numpy as np 
a = np.array([[30,40,70],[80,20,10],[50,90,60]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying percentile() function:' 
print np.percentile(a,50) 
print '\n'  

print 'Applying percentile() function along axis 1:' 
print np.percentile(a,50, axis = 1) 
print '\n'  

print 'Applying percentile() function along axis 0:' 
print np.percentile(a,50, axis = 0)

Producirá la siguiente salida:

Our array is:
[[30 40 70]
 [80 20 10]
 [50 90 60]]

Applying percentile() function:
50.0

Applying percentile() function along axis 1:
[ 40. 20. 60.]

Applying percentile() function along axis 0:
[ 50. 40. 60.]

numpy.median ()

Medianse define como el valor que separa la mitad superior de una muestra de datos de la mitad inferior. losnumpy.median() La función se utiliza como se muestra en el siguiente programa.

Ejemplo

import numpy as np 
a = np.array([[30,65,70],[80,95,10],[50,90,60]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying median() function:' 
print np.median(a) 
print '\n'  

print 'Applying median() function along axis 0:' 
print np.median(a, axis = 0) 
print '\n'  
 
print 'Applying median() function along axis 1:' 
print np.median(a, axis = 1)

Producirá la siguiente salida:

Our array is:
[[30 65 70]
 [80 95 10]
 [50 90 60]]

Applying median() function:
65.0

Applying median() function along axis 0:
[ 50. 90. 60.]

Applying median() function along axis 1:
[ 65. 80. 60.]

numpy.mean ()

La media aritmética es la suma de elementos a lo largo de un eje dividida por el número de elementos. losnumpy.mean()La función devuelve la media aritmética de los elementos de la matriz. Si se menciona el eje, se calcula a lo largo de él.

Ejemplo

import numpy as np 
a = np.array([[1,2,3],[3,4,5],[4,5,6]]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying mean() function:' 
print np.mean(a) 
print '\n'  

print 'Applying mean() function along axis 0:' 
print np.mean(a, axis = 0) 
print '\n'  

print 'Applying mean() function along axis 1:' 
print np.mean(a, axis = 1)

Producirá la siguiente salida:

Our array is:
[[1 2 3]
 [3 4 5]
 [4 5 6]]

Applying mean() function:
3.66666666667

Applying mean() function along axis 0:
[ 2.66666667 3.66666667 4.66666667]

Applying mean() function along axis 1:
[ 2. 4. 5.]

numpy.average ()

El promedio ponderado es un promedio resultante de la multiplicación de cada componente por un factor que refleja su importancia. losnumpy.average()La función calcula el promedio ponderado de los elementos en una matriz de acuerdo con su peso respectivo dado en otra matriz. La función puede tener un parámetro de eje. Si no se especifica el eje, la matriz se aplana.

Considerando una matriz [1,2,3,4] y los pesos correspondientes [4,3,2,1], el promedio ponderado se calcula sumando el producto de los elementos correspondientes y dividiendo la suma por la suma de los pesos.

Promedio ponderado = (1 * 4 + 2 * 3 + 3 * 2 + 4 * 1) / (4 + 3 + 2 + 1)

Ejemplo

import numpy as np 
a = np.array([1,2,3,4]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying average() function:' 
print np.average(a) 
print '\n'  

# this is same as mean when weight is not specified 
wts = np.array([4,3,2,1]) 

print 'Applying average() function again:' 
print np.average(a,weights = wts) 
print '\n'  

# Returns the sum of weights, if the returned parameter is set to True. 
print 'Sum of weights' 
print np.average([1,2,3, 4],weights = [4,3,2,1], returned = True)

Producirá la siguiente salida:

Our array is:
[1 2 3 4]

Applying average() function:
2.5

Applying average() function again:
2.0

Sum of weights
(2.0, 10.0)

En una matriz multidimensional, se puede especificar el eje para el cálculo.

Ejemplo

import numpy as np 
a = np.arange(6).reshape(3,2) 

print 'Our array is:' 
print a 
print '\n'  

print 'Modified array:' 
wt = np.array([3,5]) 
print np.average(a, axis = 1, weights = wt) 
print '\n'  

print 'Modified array:' 
print np.average(a, axis = 1, weights = wt, returned = True)

Producirá la siguiente salida:

Our array is:
[[0 1]
 [2 3]
 [4 5]]

Modified array:
[ 0.625 2.625 4.625]

Modified array:
(array([ 0.625, 2.625, 4.625]), array([ 8., 8., 8.]))

Desviación Estándar

La desviación estándar es la raíz cuadrada del promedio de las desviaciones al cuadrado de la media. La fórmula para la desviación estándar es la siguiente:

std = sqrt(mean(abs(x - x.mean())**2))

Si la matriz es [1, 2, 3, 4], entonces su media es 2.5. Por tanto, las desviaciones al cuadrado son [2.25, 0.25, 0.25, 2.25] y la raíz cuadrada de su media dividida por 4, es decir, sqrt (5/4) es 1.1180339887498949.

Ejemplo

import numpy as np 
print np.std([1,2,3,4])

Producirá la siguiente salida:

1.1180339887498949

Diferencia

La varianza es el promedio de las desviaciones al cuadrado, es decir, mean(abs(x - x.mean())**2). En otras palabras, la desviación estándar es la raíz cuadrada de la varianza.

Ejemplo

import numpy as np 
print np.var([1,2,3,4])

Producirá la siguiente salida:

1.25