Operaciones vectorizadas
NumPy permite hacer operaciones en todo el array sin loops explicitos.
Operaciones aritmeticas
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([10, 20, 30, 40])
# Operaciones elemento a elemento
a + b # [11 22 33 44]
a - b # [-9 -18 -27 -36]
a * b # [10 40 90 160]
a / b # [0.1 0.1 0.1 0.1]
a ** 2 # [1 4 9 16]
# Con escalares
a + 10 # [11 12 13 14]
a * 2 # [2 4 6 8]
Funciones matematicas
arr = np.array([1, 4, 9, 16, 25])
np.sqrt(arr) # [1. 2. 3. 4. 5.]
np.exp(arr) # exponencial
np.log(arr) # logaritmo natural
np.sin(arr) # seno
np.abs(arr) # valor absoluto
np.round(arr, 2) # redondear
Funciones estadisticas
data = np.array([23, 45, 67, 12, 89, 34, 56])
np.mean(data) # 46.57 - promedio
np.median(data) # 45.0 - mediana
np.std(data) # 24.34 - desviacion estandar
np.var(data) # 592.53 - varianza
np.min(data) # 12
np.max(data) # 89
np.sum(data) # 326
np.percentile(data, 75) # percentil 75
Operaciones en ejes
matriz = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# axis=0: opera en columnas
np.sum(matriz, axis=0) # [12 15 18]
np.mean(matriz, axis=0) # [4. 5. 6.]
# axis=1: opera en filas
np.sum(matriz, axis=1) # [6 15 24]
np.mean(matriz, axis=1) # [2. 5. 8.]
Broadcasting
# NumPy expande automaticamente dimensiones
matriz = np.array([[1, 2, 3],
[4, 5, 6]])
vector = np.array([10, 20, 30])
# Suma matriz (2,3) + vector (3,)
resultado = matriz + vector
# [[11 22 33]
# [14 25 36]]