Funciones principales de NumPy
Clase 7 de 24 • Curso de Manipulación y Transformación de Datos con Pandas y NumPy
Resumen
Vamos a ver cuáles son las funciones que se utilizan normalmente con NumPy cuando analizamos los datos.
arr = np.random.randint(1, 20, 10)
arr
---> array([ 6, 11, 15, 12, 9, 17, 7, 7, 12, 3])
matriz = arr.reshape(2,5)
matriz
---> array([[ 6, 11, 15, 12, 9],
[17, 7, 7, 12, 3]])
.max
Para el máximo
arr.max() ----> 17
matriz.max() ----> 17
Podemos regresar los máximos de cada fila o columna especificando el eje
Recuerda que:
0 | Columnas |
---|---|
1 | Filas |
matriz.max(1) ---> array([15, 17])
matriz.max(0) --->rray([17, 11, 15, 12, 9])
También tenemos .argmax()
que nos devuelve la posición del elemento
arr.argmax() ---> 9
En el caso de la matriz nos muestra con un 1 dónde se encuentra el mayor entre las columnas
matriz.argmax(0) ---> array([0, 1, 1, 0, 1])
De forma análoga tenemos .min()
arr.min() ---> 3
arr.argmin() ---> 3
matriz.min(0) ---> array([ 6, 7, 7, 12, 3])
matriz.argmin(1) ---> array([6, 3])
Podemos saber la distancia entre el valor más bajo con el más alto.
arr.ptp() # 17 - 3 ---> 14
matriz.ptp(0) ---> array([11, 4, 8, 0, 6])
Análisis estadístico
Ordenar los elementos:
arr.sort() ---> array([ 3, 6, 7, 7, 9, 11, 12, 12, 15, 17])
Obtener un percentil:
np.percentile(arr, 50) ---> 10.0
Mediana:
np.median(arr) ---> 10.0
Desviación estándar:
np.std(arr) ---> 4.0853396431631
Varianza:
np.var(arr) ---> 16.69
Promedio:
np.mean(arr) ---> 9.9
Lo mismo aplica para las matrices.
np.median(matriz, 1) ---> array([ 7., 12.])
Concatenación
Se pueden unir dos arrays
a = np.array([[1,2], [3,4]])
b= np.array([5, 6])
np.concatenate((a,b), axis = 0)
---> ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
El error anterior es debido a que ‘a’ tiene 2 dimensiones, mientras que ‘b’ tiene 1.
a.ndim ---> 2
b.ndim ---> 1
Debemos poner ‘b’ en 2 dimensiones también.
b = np.expand_dims(b, axis = 0)
np.concatenate((a,b), axis = 0)
---> array([[1, 2],
[3, 4],
[5, 6]])
De igual manera, podemos agregarlo en el otro eje
np.concatenate((a,b), axis = 1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1
Como ‘b’ es una fila y no una columna, no se puede concatenar a menos que se aplique la transpuesta.
La transpuesta pone nuestro array en sentido opuesto, si el array original es (1,2), con la transpuesta quedará (2,1)
b.T
---> array([[5],
[6]])
np.concatenate((a,b.T), axis = 1)
---> array([[1, 2, 5],
[3, 4, 6]])
Contribución creada por: Edward Giraldo.