Volver al curso

Python para Data Science

leccion
7 / 14
beginner
12 horas
NumPy: Computacion Numerica

NumPy en la practica

Lectura
12 min~2 min lectura

Casos de uso practicos

Filtrado con condiciones

import numpy as np

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

# Condicion booleana
mayores = edades >= 18
# [False  True  True  True  True  True False]

# Filtrar usando la condicion
edades[mayores]  # [22 35 18 45 30]

# En una linea
edades[edades >= 18]  # [22 35 18 45 30]

# Condiciones multiples
edades[(edades >= 18) & (edades <= 35)]  # [22 35 18 30]

Manipulacion de forma

# Reshape: cambiar dimensiones
arr = np.arange(12)  # [0, 1, 2, ..., 11]
matriz = arr.reshape(3, 4)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

# Flatten: aplanar a 1D
matriz.flatten()  # [0, 1, 2, ..., 11]

# Transpose: transponer
matriz.T
# [[ 0  4  8]
#  [ 1  5  9]
#  [ 2  6 10]
#  [ 3  7 11]]

Combinando arrays

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

# Concatenar
np.concatenate([a, b])  # [1 2 3 4 5 6]

# Stack vertical
np.vstack([a, b])
# [[1 2 3]
#  [4 5 6]]

# Stack horizontal
np.hstack([a, b])  # [1 2 3 4 5 6]

Ejemplo: Normalizacion de datos

# Datos de ejemplo
datos = np.array([100, 200, 300, 150, 250])

# Normalizacion Min-Max (escala 0-1)
normalizado = (datos - datos.min()) / (datos.max() - datos.min())
# [0.   0.5  1.   0.25 0.75]

# Estandarizacion (media=0, std=1)
estandarizado = (datos - datos.mean()) / datos.std()
# [-1.26 -0.32  0.63 -0.79  0.16]

Generacion de datos para simulacion

np.random.seed(42)  # Reproducibilidad

# Distribucion normal
alturas = np.random.normal(loc=170, scale=10, size=1000)
# Media: 170cm, Desv: 10cm, 1000 muestras

# Distribucion uniforme
precios = np.random.uniform(10, 100, size=500)

# Enteros aleatorios
dados = np.random.randint(1, 7, size=(100, 2))
# 100 lanzamientos de 2 dados