Lección 6 de 14 · Lectura y práctica
Operaciones con NumPy
Operaciones vectorizadas con NumPy La fuerza de NumPy está en operar sobre arrays completos sin escribir bucles. Esto se llama vectorización: aplicas una operación y NumPy la ejecuta sobre cada elemento de forma optimizada. El.
Esta es una lección del contenido anterior de Cursalo. Si ya estudiaste o compraste este curso, entra con tu cuenta para guardar tu progreso y abrir el resto de las clases. No necesitas comprar nada de nuevo.
Operaciones vectorizadas con NumPy
La fuerza de NumPy está en operar sobre arrays completos sin escribir bucles. Esto se llama vectorización: aplicas una operación y NumPy la ejecuta sobre cada elemento de forma optimizada. El resultado es código más corto, más rápido y más fácil de leer.
Aritmética elemento a elemento
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([10, 20, 30, 40])
a + b # [11 22 33 44]
a * b # [10 40 90 160]
a ** 2 # [1 4 9 16]
# Con escalares se aplica a todos los elementos
a + 10 # [11 12 13 14]
a * 2 # [2 4 6 8]
Funciones matemáticas y estadísticas
data = np.array([23, 45, 67, 12, 89, 34, 56])
np.mean(data) # promedio
np.median(data) # mediana
np.std(data) # desviación estándar
np.var(data) # varianza
np.min(data) # mínimo
np.max(data) # máximo
np.percentile(data, 75) # percentil 75
# Funciones aplicadas a cada elemento
arr = np.array([1, 4, 9, 16, 25])
np.sqrt(arr) # [1. 2. 3. 4. 5.]
np.log(arr) # logaritmo natural
Operaciones por eje
En una matriz, axis=0 recorre las filas (opera por columna) y axis=1 recorre las columnas (opera por fila).
matriz = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
np.sum(matriz, axis=0) # [12 15 18] -> suma por columna
np.sum(matriz, axis=1) # [6 15 24] -> suma por fila
np.mean(matriz, axis=0) # [4. 5. 6.]
Broadcasting
NumPy expande automáticamente dimensiones compatibles para operar sin copiar datos manualmente.
matriz = np.array([[1, 2, 3],
[4, 5, 6]])
vector = np.array([10, 20, 30])
matriz + vector
# [[11 22 33]
# [14 25 36]]
Atención
El broadcasting solo funciona si las dimensiones son compatibles (iguales o una de ellas vale 1). Si ves un error operands could not be broadcast together, revisa los shape de tus arrays.
En una matriz, ¿qué calcula np.sum(matriz, axis=0)?
axis=0 recorre las filas hacia abajo, por lo que el resultado es la suma de cada columna.Ejercicio práctico
Objetivo: usar la vectorización para calcular métricas reales.
- Crea un array con 10 temperaturas en grados Celsius.
- Conviértelas a Fahrenheit con una sola operación vectorizada (
C * 9/5 + 32). - Calcula media, mínimo, máximo y desviación estándar del array original.
- Crea una matriz 3x4 de ventas y obtén el total por columna (
axis=0) y por fila (axis=1).
Entregable: notebook con el array convertido, las estadísticas y los totales por eje.
Para recordar
- La vectorización aplica operaciones a todo el array sin bucles explícitos.
axis=0= por columna;axis=1= por fila.- El broadcasting combina arrays de distinto tamaño si sus dimensiones son compatibles.