Apéndice · Entorno reproducible de referencia

Este apéndice fija el entorno con el que se ejecuta todo el código del libro, de modo que cualquier cifra marcada como medida sea reproducible.

Gestor de proyecto y dependencias

Se usa uv (Astral). Para clonar el entorno exacto del libro:

uv sync            # instala las versiones EXACTAS del uv.lock
uv run python src/cap07_numpy.py   # ejecuta dentro del entorno

Las versiones se declaran con rango en pyproject.toml y se congelan en uv.lock (versión exacta y hash de cada dependencia del árbol completo).

Bibliotecas usadas (versiones de referencia).

Todo el código de esta edición se ejecutó y verificó sobre CPython 3.11.14 con las siguientes versiones, recogidas también en requirements-lock.txt:

Biblioteca Versión
NumPy 2.3.3
pandas 2.3.3
polars 1.42.1
PyArrow 22.0.0
SciPy 1.17.1
scikit-learn 1.7.2
matplotlib 3.10.7
pandera 0.32.1
hypothesis 6.155.7
DuckDB 1.5.4

Registrar las versiones exactas no es un formalismo: una cifra medida solo es reproducible si se sabe con qué versión de cada biblioteca se obtuvo, porque el comportamiento puede cambiar entre versiones.

Semillas y determinismo

Toda medición fija la semilla del generador antes de usarlo:

import numpy as np
rng = np.random.default_rng(2026)   # generador con semilla fija

Las medidas de tiempo de reloj (latencias) se reportan por su cociente o su orden de magnitud, no por su valor absoluto, que depende de la máquina. Antes de citar una cifra de tiempo se re-ejecuta la medición y se comprueba que el cociente es estable.