Guía del usuario de NumPy
Una revisión introductoria completa y guía técnica sobre NumPy, que cubre la instalación, manipulación de matrices, indexación, difusión y la integración con C/C++.
Lecciones
Descripción del curso
📚 Resumen del contenido
Una revisión introductoria completa y una guía técnica sobre NumPy, que cubre la instalación, manipulación de matrices, indexación, difusión (broadcasting) e integración con C/C++.
Domina los fundamentos del cálculo científico en Python con la guía oficial de NumPy.
Autor: La comunidad de NumPy
Agradecimientos: Escrito por la comunidad de NumPy
🎯 Objetivos de aprendizaje
- Definir NumPy e identificar su papel en el ecosistema científico de Python.
- Explicar por qué NumPy es significativamente más rápido que los bucles estándar de Python mediante el concepto de vectorización.
- Ejecutar comandos de instalación para diversos entornos, incluyendo Pip, Conda y Raspberry Pi.
- Identificar e interpretar los atributos principales del
ndarray, comondim,shapeydtype. - Ejecutar la creación y manipulación de matrices usando funciones como
linspace,reshape,vstackyhstack. - Aplicar operaciones elementales, funciones universales (ufuncs) y resolutores de álgebra lineal a conjuntos de datos numéricos.
- Gestionar la precisión de los datos y mitigar errores de desbordamiento usando los tipos escalares de NumPy y herramientas de información (
iinfo,finfo). - Implementar la ingesta flexible de datos desde disco usando
genfromtxtcon delimitadores personalizados, encabezados y selección de columnas. - Aplicar las Reglas Generales de Difusión para predecir y controlar las interacciones entre matrices de formas diferentes.
- Gestionar referencias de memoria y evitar "trampas" en subclases personalizadas de
ndarrayusando el atributo.base.
🔹 Lección 1: Introducción y configuración del entorno
Descripción general: Esta lección presenta NumPy como la biblioteca fundamental para el cálculo científico en Python, explicando sus ventajas de rendimiento mediante la vectorización. Los estudiantes aprenderán a instalar la biblioteca en diversas plataformas (Windows, Raspberry Pi, Conda, PyCharm) y resolver obstáculos comunes de instalación como ImportError mediante el manejo de variables de entorno y dependencias del sistema.
Resultados de aprendizaje:
- Definir NumPy e identificar su papel en el ecosistema científico de Python.
- Explicar por qué NumPy es significativamente más rápido que los bucles estándar de Python mediante el concepto de vectorización.
- Ejecutar comandos de instalación para diversos entornos, incluyendo Pip, Conda y Raspberry Pi.
🔹 Lección 2: Fundamentos básicos y manipulación de matrices
Descripción general: Esta lección proporciona una introducción completa al objeto ndarray de NumPy, cubriendo sus atributos principales, métodos de creación y operaciones matemáticas básicas. Se extiende hacia temas avanzados, incluyendo indexación avanzada (basada en booleanos e enteros), manipulación de formas y rutinas esenciales de álgebra lineal. Al final de este módulo, los participantes podrán almacenar, transformar y analizar eficientemente estructuras de datos multidimensionales.
Resultados de aprendizaje:
- Identificar e interpretar los atributos principales del
ndarray, comondim,shapeydtype. - Ejecutar la creación y manipulación de matrices usando funciones como
linspace,reshape,vstackyhstack. - Aplicar operaciones elementales, funciones universales (ufuncs) y resolutores de álgebra lineal a conjuntos de datos numéricos.
🔹 Lección 3: Gestión avanzada de datos y difusión
Descripción general: Esta lección aborda los mecanismos avanzados de NumPy, centrándose en el manejo preciso de tipos de datos, el tratamiento del desbordamiento y operaciones I/O sofisticadas usando genfromtxt. Los estudiantes dominarán la lógica interna de la Difusión para operaciones aritméticas, los matices del orden de bytes a nivel de memoria y la creación de matrices estructuradas o de registros para conjuntos de datos heterogéneos. Las secciones finales detallan la extensibilidad de NumPy mediante contenedores de matrices personalizadas y los protocolos formales para subclasificar ndarray.
Resultados de aprendizaje:
- Gestionar la precisión de los datos y mitigar errores de desbordamiento usando los tipos escalares de NumPy y herramientas de información (
iinfo,finfo). - Implementar la ingesta flexible de datos desde disco usando
genfromtxtcon delimitadores personalizados, encabezados y selección de columnas. - Aplicar las Reglas Generales de Difusión para predecir y controlar las interacciones entre matrices de formas diferentes.
🔹 Lección 4: Excepciones numéricas e interfaz con lenguajes
Descripción general: Esta lección explora los matices avanzados de la subclasificación de NumPy, especialmente respecto al manejo de memoria y compatibilidad descendente. También examina cómo NumPy implementa el estándar IEEE 754 para valores flotantes para gestionar valores especiales y excepciones numéricas, concluyendo con los mecanismos para conectar matrices de NumPy con lenguajes de bajo nivel como C, C++ y Fortran.
Resultados de aprendizaje:
- Gestionar referencias de memoria y evitar "trampas" en subclases personalizadas de
ndarrayusando el atributo.base. - Mantener la compatibilidad descendente en subclases implementando correctamente
__array_wrap__y las firmas de métodos. - Identificar y manipular valores especiales IEEE 754 (NaN, Inf) y configurar el comportamiento global de excepciones numéricas.
🔹 Lección 5: Extender NumPy con la API de C
Descripción general: Esta lección explora los diversos métodos para extender la funcionalidad de NumPy mediante la interfaz con lenguajes compilados como C, C++ y Fortran. Cubre herramientas automatizadas como f2py y Cython, envoltorios manuales con ctypes, la creación de funciones universales de alto rendimiento (ufuncs) y técnicas avanzadas de la API de C para iteración de matrices, tipos de datos personalizados y subtipos del ndarray.
Resultados de aprendizaje:
- Comparar e implementar diversos métodos para "unir" código compilado con Python (f2py, Cython, ctypes).
- Crear y registrar funciones universales personalizadas de NumPy (ufuncs) para tipos de datos simples y múltiples, incluyendo matrices estructuradas.
- Utilizar la API de C de NumPy para realizar iteración eficiente de matrices, gestionar la difusión y definir tipos de datos o subtipos de ndarray personalizados.