Python para Data Science
Python para Data Science Texto Leccion

NumPy en la practica

NumPy en la práctica Ya conoces los arrays y las operaciones vectorizadas. Ahora veremos patrones que aparecen constantemente en proyectos reales: filtrar con condiciones, cambiar la forma de los datos, combinarlos y prepararlos para un modelo. Estos son los movimientos diarios de un científico de datos. Filtrado con condiciones booleanas import numpy as np edades = np.array([15, 22, 35, 18, 45, 30, 17]) # Una condición devuelve un array de True/False mayores = edades >= 18 # Se usa como másc
Tiempo de estudio
12 Min

NumPy en la práctica



Ya conoces los arrays y las operaciones vectorizadas. Ahora veremos patrones que aparecen constantemente en proyectos reales: filtrar con condiciones, cambiar la forma de los datos, combinarlos y prepararlos para un modelo. Estos son los movimientos diarios de un científico de datos.



Filtrado con condiciones booleanas



import numpy as np

edades = np.array([15, 22, 35, 18, 45, 30, 17])

# Una condición devuelve un array de True/False
mayores = edades >= 18

# Se usa como máscara para seleccionar
edades[edades >= 18] # [22 35 18 45 30]
edades[(edades >= 18) & (edades <= 35)] # [22 35 18 30]


Atención

En NumPy usa & y | (no and/or) para combinar condiciones, y rodea cada condición con paréntesis. Olvidarlos es uno de los errores más comunes.



Cambiar la forma de los datos



arr = np.arange(12)            # [0, 1, ..., 11]
matriz = arr.reshape(3, 4) # 3 filas, 4 columnas

matriz.flatten() # vuelve a 1D
matriz.T # transpuesta (filas <-> columnas)


Combinar arrays



a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

np.concatenate([a, b]) # [1 2 3 4 5 6]
np.vstack([a, b]) # apila como filas
np.hstack([a, b]) # apila como columnas (1D -> [1 2 3 4 5 6])


Preparar datos para un modelo



Casi todos los modelos esperan datos en una escala comparable. Dos técnicas clásicas:



datos = np.array([100, 200, 300, 150, 250])

# Normalización Min-Max -> rango [0, 1]
normalizado = (datos - datos.min()) / (datos.max() - datos.min())

# Estandarización -> media 0, desviación 1
estandarizado = (datos - datos.mean()) / datos.std()


Generar datos para simular



np.random.seed(42)   # fija la semilla para resultados reproducibles

# Distribución normal: media 170, desviación 10, 1000 muestras
alturas = np.random.normal(loc=170, scale=10, size=1000)

# Enteros aleatorios entre 1 y 6 (dos dados, 100 tiradas)
dados = np.random.randint(1, 7, size=(100, 2))


Consejo

Fija siempre np.random.seed(...) al inicio cuando uses aleatoriedad. Así tus resultados y los de quien revise tu trabajo serán idénticos.



¿Por qué usamos & en lugar de and al combinar condiciones sobre un array de NumPy?

and intenta evaluar la verdad del array entero y lanza un error; & aplica el AND lógico posición a posición, que es lo que queremos para filtrar.


Ejercicio práctico


Objetivo: simular y preparar un conjunto de datos.



  1. Fija la semilla a 42 y genera 200 salarios con np.random.normal(loc=2500, scale=600, size=200).

  2. Filtra solo los salarios entre 2000 y 3500.

  3. Estandariza el array filtrado (media 0, desviación 1) y verifica imprimiendo su media y desviación.

  4. Reorganiza los primeros 12 valores originales en una matriz 3x4 con reshape.


Entregable: notebook con el array filtrado, sus estadísticas estandarizadas y la matriz 3x4.



Para recordar


  • Las máscaras booleanas filtran arrays; combina condiciones con & y | entre paréntesis.

  • reshape, flatten y .T cambian la forma sin cambiar los datos.

  • Normalizar o estandarizar pone los datos en una escala comparable antes de modelar.

Texto Leccion 3/14
Estas viendo
NumPy en la practica
Hablar por WhatsAppContactar por WhatsApp