Creación y limpieza de datos con NumPy
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Transformando datos de NumPy
Hay veces en que hay que transformar de un tipo de dato (int64) a otro (float64). Puedes copiar los datos y transformarlos con np.array. Puedes transformar los datos si estableces el tipo en dtype.
np.zeros(cantidad) te permite crear un vector del tamaño que le digas, lleno de ceros. Funciona igual con una matriz: la matriz tan grande como quieras, si le das los valores adecuados.
Inicializando cubos con ceros
np.zeros también funciona con cubos, tensores, y con cualquier otra dimensión.
¿De qué nos sirve eso?
Las matrices pueden ser usadas para representar datos grandes:
Datos geográficos (mapas)
Imágenes en escala de grises
Matrices en mapas auto-organizativos
También puedes inicializar un NumPy con valores “1”, u otro valor que quieras. Todos los datos mantendrán el mismo valor.
Uniforme: del 0 al 1, todos los valores son aleatorios.
Normal: se comporta como una “campana de gauss”
¿Cual distribución usar?
¿Al azar? --> Usa uniforme ¿Que se comporte como la naturaleza? --> Usa normal
¿Para qué nos sirve?
Cuando vas a entrenar una red neuronal, requieres inicializar las neuronas aleatoriamente.
Cuando vas a entrenar un sistema de agrupación automática (clusterización), los grupos comienzan aleatoriamente.
Si inicializas los datos en ceros o unos, es fácil que el sistema no aprenda.
Accediendo a un dato
¿Cómo podemos obtener un dato en un vector / matriz / cubo / etc…?
variableNP[#][#]
En el ejemplo, matriz[2][1] significa: Vector 2, valor 1
¿En el caso de los cubos?
Cubo[2][1][0] = La matriz 2, el vector 1, el valor 0 Así funciona con todas las dimensiones. Formas alternativas de acceder a los datos:
División de datos
Puedes partir un vector en valores.
Puedes partir una matriz en vectores.
Puedes partir un cubo en matrices.
Filtros (limpieza de datos)
Supongamos que tenemos una matriz con datos simples. Queremos filtrar los datos con alguna condicional. Cumple con la condición: se mantiene el dato. No cumple con la condición: el dato se vuelve 0.
¿Para qué sirve limpiar los datos?
Es común que cuando extraes datos lleguen a estar sucios:
Datos sin sentido
Datos negativos (que no deberían existir)
Datos vacíos
Valores NaN (Not a Number)
¿Y qué sucede con estos datos sucios?
Un valor NaN puede ser un valor infinitamente grande o pequeño.
Cualquier operación con un NaN corrompe una red neuronal hasta volverla inservible.
Cualquier operación con datos sucios puede acarrear bugs desagradables.