NumPy: Numerical Python
NumPy es la libreria fundamental para computacion cientifica en Python. Proporciona arrays multidimensionales y operaciones matematicas rapidas.
Por que NumPy?
import numpy as np
# Lista de Python vs Array NumPy
lista = [1, 2, 3, 4, 5]
array = np.array([1, 2, 3, 4, 5])
# NumPy es MUCHO mas rapido
# (50x mas rapido para operaciones numericas)
Creando arrays
# Desde lista
arr = np.array([1, 2, 3, 4, 5])
# Array 2D (matriz)
matriz = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# Arrays especiales
ceros = np.zeros(5) # [0. 0. 0. 0. 0.]
unos = np.ones((3, 3)) # Matriz 3x3 de unos
rango = np.arange(0, 10, 2) # [0 2 4 6 8]
lineal = np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1.]
aleatorio = np.random.rand(3) # 3 numeros aleatorios [0,1)
normal = np.random.randn(1000) # Distribucion normal
Propiedades de arrays
arr = np.array([[1, 2, 3], [4, 5, 6]])
arr.shape # (2, 3) - 2 filas, 3 columnas
arr.ndim # 2 - dimensiones
arr.size # 6 - total de elementos
arr.dtype # int64 - tipo de datos
Indexado y Slicing
arr = np.array([10, 20, 30, 40, 50])
arr[0] # 10 (primer elemento)
arr[-1] # 50 (ultimo)
arr[1:4] # [20 30 40]
arr[::2] # [10 30 50] (cada 2)
# En 2D
matriz = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
matriz[0, 0] # 1
matriz[1, :] # [4 5 6] (fila 1)
matriz[:, 2] # [3 6 9] (columna 2)
matriz[0:2, 1:] # [[2 3] [5 6]]