Creación y limpieza de datos con NumPy

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.

Transformar datos en Numpy

Inicializando matrices y vectores

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

Inicializando con otros valores

También puedes inicializar un NumPy con valores “1”, u otro valor que quieras. Todos los datos mantendrán el mismo valor.

Inicializando con valores aleatorios

Distribuciones: Uniforme o Normal

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

Distribuciones: Uniforme (arriba) / Normal (abajo)

¿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.

---> Sigue con el ejemplo 02 y 03 // Reto 02 <---

Última actualización

¿Te fue útil?