Table of Contents
Introducción
NumPy es una biblioteca de terceros para la computación numérica, optimizada para trabajar con arrays unidimensionales y multidimensionales. Su tipo principal es el tipo de matriz llamado ndarray. Esta biblioteca contiene muchas rutinas para el análisis estadístico.
Crear, obtener información, seleccionar y utilizar funciones
El conjunto de datos de 2009 ‘Wine Quality Dataset‘ realizado por Cortez et al. disponible en UCI Machine Learning, es un conocido conjunto de datos que contiene información sobre la calidad del vino.
Antes de empezar, vamos a visualizar la cabeza un pequeño conjunto de datos de ejemplo
Creando
En Numpy se pueden crear arrays de diferentes maneras, vamos a ver ejemplos de las más comunes y las que pueden ser más útiles para el procesamiento de datos.
Matriz unidimensional de la lista:
Import numpy as np
list = [1, 2, 3]
uni_numpy_array = np.array(list)
array([1, 2, 3])
Matriz multidimensional de la lista:
list = [[1, 2, 3], [4, 5, 6]]
multi_numpy_array = np.array(list)
array([[1, 2, 3],
[4, 5, 6]])
Matriz multidimensional todos los valores son ceros:
zeros_array = np.zeros((3, 4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
Matriz multidimensional todos los valores son aleatorios:
random_array = np.random.rand(3, 4)
array([[0.98195491, 0.34964712, 0.13426036, 0.55065786],
[0.4180283 , 0.36018953, 0.44374156, 0.4366695 ],
[0.69893273, 0.01089244, 0.4297768 , 0.6985924 ]])
Obteniendo información
Hay varias funciones que nos pueden ayudar a extraer información de los datos. Vamos a explicar una por una con ejemplos de su funcionamiento y su utilidad.
Obtener las dimensiones del array:
Para ello vamos a utilizar la función `shape()` que devuelve el número de filas y el número de columnas (filas, columnas).
wines_df.shape
(1599, 12)
Obtener tipo de datos:
NumPy tiene varios tipos de datos diferentes, que en su mayoría se corresponden con los tipos de datos de Python, como float y str. Puedes encontrar una lista completa de los tipos de datos más importantes de NumPy aquí:
1. float – numeric floating point data.
2. int – integer data.
3. string – character data.
4. object – Python objects.
En este caso utilizaremos el atributo `dtype` que devuelve el tipo de datos del array.
wines_df.dtype
dtype('float64')
Selección
Utiliza la sintaxis np.array[i,j] para recuperar un elemento en el índice de fila i y el índice de columna j de la matriz.
Para recuperar múltiples elementos, utilice la sintaxis np.array[(valores_fila), (valores_columna)] donde valores_fila y valores_columna son una tupla del mismo tamaño.
Ahora vamos a mostrar diferentes ejemplos de cómo seleccionar elementos dentro de un array:
Consigue la primera fila:
first_row = wines_df[:1]
array([[ 7.4 , 0.7 , 0. , 1.9 , 0.076 , 11. , 34. ,
0.9978, 3.51 , 0.56 , 9.4 , 5. ]])
Selecciona el segundo elemento de la tercera fila:
second_third = wines_df[2, 1:2]
array([0.76])
Selecciona los tres primeros elementos de la cuarta columna:
first_three_items = wines_df[:3, 3]
array([1.9, 2.6, 2.3])
Selecciona toda la cuarta columna:
fourth_column = wines_df[:, 3]
array([1.9, 2.6, 2.3, ..., 2.3, 2. , 3.6])
Funciones de utilidad
Numpy es una librería que tiene infinidad de funciones de operaciones matemáticas, así que vamos a intentar resumir en varios ejemplos las funciones que como Data Scientist vamos a utilizar con más probabilidad.
Resume toda la undécima columna:
twelveth_column_sum = wines_df[:, 11].sum()
9012.0
Suma todas las columnas:
all_columns_sum = wines_df.sum(axis=0)
array([13303.1 , 843.985 , 433.29 , 4059.55 , 139.859 ,
25384. , 74302. , 1593.79794, 5294.47 , 1052.38 ,
16666.35 , 9012. ])
Media de la primera fila:
first_row_mean = wines_df[:1].mean()
6.211983333333333
Devuelve un array bool donde el valor de la posición de la 11ª columna es True si el valor era menor que 5 y False en otro caso:
bool_array = wines_df[:,11] > 5
array([False, False, False, ..., True, False, True])
Obtén la matriz de trasposición de la matriz de vinos:
traspose = np.transpose(wines_df)
traspose.shape
(12, 1599)
Obtén el conjunto de vinos de array aplanada:
flatten = wines_df.ravel()
flatten.shape
(19188,)
Convierte la 12ª fila de vinos en una matriz bidimensional con 3 filas y 4 columnas:
wines_df[1:2].reshape((3,4))
array([[ 7.8 , 0.88 , 0. , 2.6 ],
[ 0.098 , 25. , 67. , 0.9968],
[ 3.2 , 0.68 , 9.8 , 5. ]])
Entrenando tus habilidades
Si quieres llevar tus habilidades más allá en Ciencia de Datos, hemos creado un curso que puedes descargar gratis aquí.