Antes del primer Python lab, deja esto listo una vez. Windows-friendly (estás en Windows 11).
1. Python
Si no tienes Python, instálalo desde https://www.python.org/downloads/ (marca "Add Python to PATH" en el instalador) o desde la Microsoft Store.
Verifica en PowerShell:
python --version
Debería decir algo como Python 3.12.x.
2. Entorno virtual (recomendado)
Aísla las librerías de este proyecto:
cd C:\Users\pc\Desktop\_\Programming\Personal\Learning\Math-for-ML
python -m venv .venv
.\.venv\Scripts\Activate.ps1
Si PowerShell bloquea el script de activación:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
(cuando el prompt muestra (.venv) al inicio, está activo).
3. Librerías
pip install numpy matplotlib sympy jupyter scipy
- numpy — vectores/matrices, álgebra lineal numérica (el motor de casi todo).
- matplotlib — gráficas (visualizar vectores, funciones, gradient descent).
- sympy — matemática simbólica (verificar derivadas/integrales exactas).
- jupyter — notebooks interactivos.
- scipy — extras (distribuciones estadísticas, optimización) para módulos avanzados.
4. Abrir Jupyter
jupyter lab
Se abre en el navegador. Sugerencia de organización: crea una carpeta labs/ dentro de cada pilar y guarda un notebook por módulo, p. ej. linear-algebra/labs/01-vectors.ipynb.
¿Prefieres VS Code? Instala las extensiones Python y Jupyter y podrás correr
.ipynbdentro del editor. Cualquiera de las dos sirve.
5. Anki (spaced repetition)
Descarga Anki desde https://apps.ankiweb.net (gratis en desktop). Crea un deck llamado Math for ML. Cada vez que un módulo tenga una definición/fórmula que quieras retener para siempre, hazte una tarjeta. Revisa el deck ~10 min al día. Es el hábito con mejor retorno de todo el plan.
6. Smoke test (verifica que todo jala)
Crea labs/smoke_test.py con esto y córrelo (python labs/smoke_test.py):
import numpy as np
import matplotlib.pyplot as plt
import sympy as sp
# NumPy: dot product y norma
a = np.array([3.0, 4.0])
print("dot(a, a) =", a @ a) # 25.0
print("||a|| =", np.linalg.norm(a)) # 5.0
# SymPy: derivada simbólica de x^2
x = sp.symbols("x")
print("d/dx x^2 =", sp.diff(x**2, x)) # 2*x
# Matplotlib: una gráfica simple
xs = np.linspace(-3, 3, 100)
plt.plot(xs, xs**2)
plt.title("y = x^2")
plt.savefig("labs/smoke_test.png")
print("Gráfica guardada en labs/smoke_test.png")
Si ves 25.0, 5.0, 2*x y se genera el PNG: entorno listo. 🎉
Ahora ve a 00-foundations/00-notation-and-refresher.md (o directo a linear-algebra/01-vectors.md si tu notación está fresca).