import numpy as np
m = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(m)
[[1 2 3] [4 5 6] [7 8 9]]
print(np.amax(m)) # función amax, la primera a hace referencia a axis
9
print(np.amin(m)) # para el mínimo de la matriz completa
1
print(np.amax(m, 1)) # máximo por filas
[3 6 9]
print(np.amax(m, 0)) # máximo por columnas
[7 8 9]
Máximo- Mínimo según cierto eje.
La función es ptp acrónimo de ‘peak to peak’ (cima a cima, o pico a pico, o extremo a extremo)
np.ptp(m)
8
np.ptp(m, axis=1) # para las filas
array([2, 2, 2])
np.ptp(m, axis=0) # para las columnas
array([6, 6, 6])
Para un array de datos ordenados.
donde
m # matriz con un número impar de datos
array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np.percentile(m, 50) # percentil 50 = mediana
5.0
np.percentile(m, 50, axis=1) # para las filas
array([2., 5., 8.])
np.percentile(m, 50, axis=0) # para las columnas
array([4., 5., 6.])
La mediana es aquel valor de la variable estadística que deja el 50% de observaciones inferiores a él.
La mediana divide en dos partes iguales a la distribución estadística.
m
array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np.median(m) # Coincide con el percentil 50
5.0
np.median(m, axis=1) # para las filas
array([2., 5., 8.])
np.median(m, axis=0) # para las columnas
array([4., 5., 6.])
np.mean(m) # aplicado a toda la matriz
5.0
np.mean(m, axis=1) # para las filas
array([2., 5., 8.])
np.mean(m, axis=0) # para las columnas
array([4., 5., 6.])
Cuando no se proporciona un vector de pesos se considera que todos los valores del vector de datos tienen el mismo peso.
datos = np.arange(10, 2, -2) # vector de datos, equivale a np.array([10,8,6,4])
print(datos)
[10 8 6 4]
np.average(datos) # media ponderada de los datos de un array todos con igual peso
7.0
peso = np.arange(20, 6, -4)
peso
array([20, 16, 12, 8])
sum(peso)
56
np.average(datos, weights=peso)
7.714285714285714
m = np.array([1, 2, 3, 4, 5, 6])
print(m)
[1 2 3 4 5 6]
np.std(m) # desviación estándar poblacional
1.707825127659933
donde $$\mu = \frac{1}{N} \sum_{i=1}^N x_i.$$
para la población total.
import math
math.sqrt(np.mean((m - np.mean(m))**2))
1.707825127659933