Material de clase para el Curso dictado, por primera vez en 2017, en el IB.
- Una versión en formto HTML puede encontrarse aquí
- Aquí en formato pdf
Juan Fiol
IB - 2020
Esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.
Se ha logrado constituir una gran comunidad en torno a Python, y en particular a las aplicaciones científicas en python, por lo que existe mucha información disponible. En la preparación de estas clases se leyó/tomó inspiración y se copió/adaptó material de las siguientes fuentes:
- La documentación oficial de Python
- El Tutorial de Python, también en español
- Documentación de Numpy
- Documentación de Scipy
- Documentación de Matplotlib, en particular la Galería
- Introduction to Python for Science
- El curso de Python científico
- Las clases de Scipy Scipy Lectures
- Scipy Cookbook
- Computational Statistics in Python
- The Python Standard Library by Example de Doug Hellman, Addison-Wesley, 2017
- Python Cookbook de David Beazley, Brian K. Jones, O'Reilly Pub., 2013.
- Elegant Scipy de Harriet Dashnow, Stéfan van der Walt, Juan Nunez-Iglesias, O'Reilly Pub., 2017.
- Scientific Computing with Python 3 de Claus Führer, Jan Erik Solem, Olivier Verdier, Packt Pub., 2016.
- Interactive Applications Using Matplotlib de Benjamin V Root, Packt Pub., 2015.
- Mastering Python Regular Expressions de Félix López, Víctor Romero, Packt Pub., 2014,
Información para usuarios de Matlab:
- Introducción a la materia, objetivos, metodología
- Introducción al lenguaje de programación
- Instalación y preparación de entorno
- Distintos usos de Python (Terminales, notebook, scripts)
- Comandos de Ipython
- Documentación interna y externa
- Ejemplos
- Ejercicios
Biblioteca Standard y paquetes
Tipos de variables, asignaciones, operaciones y métodos:
- Variables numéricas
- Variables lógicas
- Variables de texto: strings
- Introducción a Listas
Introducción a control de flujo
Ejercicios
Tipos de variables, asignaciones, operaciones y métodos:
- Más operaciones con strings
- Listas y tuples
- Diccionarios
- Conjuntos
Introducción a la entrada y salida de datos
Control de flujo
- Condicionales (if/elif/else)
- Operadores lógicos
- Loops e iteraciones
Ejercicios
- Más información sobre tipos y control de flujo
- Loops e iteraciones sobre listas
- Loops e iteraciones sobre diccionarios
- Funciones
- Definición de funciones
- Funciones con argumentos mandatorios
- Número variable de argumentos
- Ejercicios
- Detalles sobre argumentos de funciones
- Uso de módulos
- Manejo de archivos y estructura de directorios
- Entrada y salida de datos, archivos comprimidos
- Ejercicios
- Definición y características
- Objetos y clases: diseños y encapsulamiento
- Herencia
- Desarrollo de un ejemplo
- Ejercicios
Introducción a Numpy
Variables del tipo arreglo (arrays)
- Creación manual y mediante funciones
- Tipos de datos
- Arrays multidimensionales
Cómo seleccionar partes de arreglos: indexing y Slicing
Algunas operaciones y métodos sobre arrays
Ejercicios
- Introducción a Matplotlib
- Creación de gráficos simples
- Títulos, leyendas, y otros. Introducción de fórmulas.
- Más de un gráfico por figura
- Ejercicios
- Operaciones entre vectores
- Uso de condicionales y arrays lógicos
- Métodos de arrays, funciones y manipulación de arrays
- Cambio de forma de arrays multidimensionales
- Extensión de las dimensiones (broadcasting)
- Generación de números aleatorios
- Histogramas
- Ejercicios
- Lectura y escritura de datos a archivos
- Trabajar con archivos comprimidos
- Datos en formato texto
- Datos en formatos binario
- Datos en otros formatos
- Personalizando la visualización
- Archivos de configuración de matplotlib
- Hojas de estilo
- Creación de nuevos estilos y modificaciones
- Ejercicios
- Introducción rápida a Scipy
- Funciones especiales
- Integración numérica
- Minimización y optimización
- Breve uso en álgebra lineal * Descomposición de matrices * Autovalores y autovectores * Resolución de ecuaciones lineales
- Una mirada rápida sobre imágenes
- Ejercicios
- Interpolación de datos
- Splines y B-Splines
- Ajuste de datos por cuadrados mínimos con polinomios
- Ajuste de curvas con funciones arbitrarias
- Fiteos utilizando el paquete científico Scipy
- Ejemplo: Fiteo de picos
- Ejercicios
- Algo más sobre manipulación de vectores
- Vectorización de funciones escalares
- Unión (concatenación) de arrays
- Enumerate para arrays
- Un poco más sobre imágenes
- Widgets y gráficos interactivos
- Agregar un cursor a las figuras
- Interacción del usuario: manejo de eventos
- Ejemplo integrado
- Introducción a transformadas de Fourier
- Transformada rápida de Fourier (FFT)
- Ejemplos: Funciones periódicas y Gaussianas
- Tranformación de funciones reales
- Graficación 2D y 3D con Matplotlib
- Histogramas en 2D (colores, colormaps, particiones hexagonales)
- Gráficos de contornos
- Superficies y contornes en 3D
- Gráficos de campos vectoriales
- Interfaces con Fortran (moderno y heredado)
- Animaciones con matplotlib