Programa Detallado
- Autor:
Juan Fiol
- Version:
Revision: 2023
- Copyright:
Libre
Clase 1: Introducción al lenguaje
Cómo empezar: Instalación y uso
Instalación
Documentación y ayudas
Uso de Python: Interactivo o no
Notebooks de Jupyter
Comandos de Ipython
Comandos de Navegación
Algunos de los comandos mágicos
Comandos de Shell
Conceptos básicos de Python
Características generales del lenguaje
Tipos de variables
Clase 2: Tipos de datos y control
Tipos simples: Números
Tipos compuestos
Strings: Secuencias de caracteres
Operaciones
Iteración y Métodos de Strings
Formato de strings
Conversión de tipos
Tipos contenedores: Listas
Operaciones sobre listas
Tuplas
Rangos
Comprensión de Listas
Módulos
Módulo math
Módulo
cmath
Adicionales
Clase 3: Tipos complejos y control de flujo
Diccionarios
Creación
Selección de elementos
Acceso a claves y valores
Modificación o adición de campos
Conjuntos
Operaciones entre conjuntos
Modificar conjuntos
Control de flujo
if/elif/else
Iteraciones
Técnicas de iteración
Iteración sobre conjuntos (set)
Iteración sobre elementos de dos listas
Iteraciones sobre diccionarios
Clase 4: Funciones
Las funciones son objetos
Definición básica de funciones
Argumentos de las funciones
Ámbito de las variables en los argumentos
Funciones con argumentos opcionales
Tipos mutables en argumentos opcionales
Número variable de argumentos y argumentos keywords
Empacar y desempacar secuencias o diccionarios
Funciones que devuelven funciones
Funciones que toman como argumento una función
Aplicacion 1: Ordenamiento de listas
Funciones anónimas
Ejemplo 1: Integración numérica
Uso de funciones anónimas
Ejemplo 2: Polinomio interpolador
Clase 5: Entrada y salida, decoradores, y errores
Funciones que aceptan y devuelven funciones (Decoradores)
Notación para decoradores
Algunos usos de decoradores
Atrapar y administrar errores
Administración de excepciones
“Crear” excepciones
Escritura y lectura a archivos
Ejemplos
Archivos comprimidos
Clase 6: Programación Orientada a Objetos
Breve introducción a Programación Orientada a Objetos
Clases y Objetos
Métodos especiales
Herencia
Atributos de clases y de instancias
Algunos métodos “especiales”
Método
__del__()
Métodos
__str__
y__repr__
Método
__call__
Métodos
__add__
,__mul__
Clase 7: Control de versiones y biblioteca standard
¿Qué es y para qué sirve el control de versiones?
Cambios en paralelo
Historia completa
Instalación y uso: Una versión breve
Instalación
Interfaces gráficas
Documentación
Configuración básica
Creación de un nuevo repositorio
Clonación de un repositorio existente
Ver el estado actual
Creación de nuevos archivos y modificación de existentes
Actualización de un repositorio remoto
Puntos importantes
Algunos módulos (biblioteca standard)
Módulo sys
Módulo
os
Módulo
subprocess
Módulo
glob
Módulo pathlib
Módulo
Argparse
Módulo
re
Clase 8: Introducción a Numpy
Algunos ejemplos
Graficación de datos de archivos
Comparación de listas y arrays
Generación de datos equiespaciados
Características de arrays en Numpy
Uso de memoria de listas y arrays
Velocidad de Numpy
Creación de arrays en Numpy
Creación de Arrays unidimensionales
Arrays multidimensionales
Otras formas de creación
Acceso a los elementos
Propiedades de Numpy arrays
Propiedades básicas
Otras propiedades y métodos de los array
Operaciones sobre arrays
Operaciones básicas
Comparaciones
Funciones definidas en Numpy
Lectura y escritura de datos a archivos
Clase 9: Visualización
Interactividad
Trabajo con ventanas emergentes
Trabajo sobre notebooks
Gráficos simples
Formato de las curvas
Líneas, símbolos y colores
Nombres de ejes y leyendas
Escalas y límites de graficación (vista)
Exportar las figuras
Dos gráficos en la misma figura
Personalizando el modo de visualización
Archivo de configuración
Hojas de estilo
Modificación de parámetros dentro de programas
Clase 10: Más información sobre Numpy
Creación y operación sobre Numpy arrays
Funciones para crear arrays
Funciones que actúan sobre arrays
Productos entre arrays y productos vectoriales
Comparaciones entre arrays
Atributos de arrays
reshape
transpose
min, max
argmin, argmax
sum, prod, mean, std
cumsum, cumprod, trapz
nonzero
Conveniencias con arrays
Convertir un array a unidimensional (ravel)
Enumerate para
ndarrays
Vectorización de funciones escalares
Copias de arrays y vistas
Indexado avanzado
Indexado con secuencias de índices
Índices de arrays multidimensionales
Indexado con condiciones
Función where
Extensión de las dimensiones (Broadcasting)
Unir (o concatenar) arrays
Apilamiento vertical
Apilamiento horizontal
Generación de números aleatorios
Distribución uniforme
Distribución normal (Gaussiana)
Histogramas
Distribución binomial
Clase 11: Introducción al paquete Scipy
Una mirada rápida a Scipy
Funciones especiales
Funciones de Bessel
Función Error
Evaluación de polinomios ortogonales
Factorial, permutaciones y combinaciones
Integración numérica
Ejemplo de función fuertemente oscilatoria
Funciones de más de una variable
Álgebra lineal
Productos y normas
Aplicación a la resolución de sistemas de ecuaciones
Descomposición de matrices
Autovalores y autovectores
Rutinas de resolución de ecuaciones lineales
Entrada y salida de datos
Entrada/salida con Numpy
Ejemplo de análisis de palabras
Entrada y salida en Scipy
Clase 12: Un poco de graficación 3D
Gráficos y procesamiento sencillo en 2D
Histogramas en 2D
Gráficos de contornos
Superficies y contornos
Clase 13: Interpolación y ajuste de curvas (fiteo)
Interpolación
Interpolación con polinomios
Splines
B-Splines
Lines are guides to the eyes
Cantidades derivadas de splines
Interpolación en dos dimensiones
Interpolación sobre datos no estructurados
Fiteos de datos
Ajuste con polinomios
Fiteos con funciones arbitrarias
Ejemplo: Fiteo de picos
Clase 14: Animaciones e interactividad
Animaciones con Matploblib
Una animación simple en pocos pasos
Segundo ejemplo simple: Quiver
Tercer ejemplo
Trabajo simple con imágenes
Análisis de la imagen
Gráficos interactivos (“widgets”)
Cursor
Manejo de eventos
Ejemplos integrados
Clase 15: Interfaces con otros lenguajes
Interface con lenguaje C
Ejemplo 1: Problema a resolver
Interfaces con C
Interface con lenguaje Fortran
Ejemplo 1: Problema a resolver
Interfaces con Fortran
Clase 16: Programación funcional con Python
Los errores al programar
Los errores en notebooks
Mutabilidad
Funciones
Funciones puras
Funciones de primer orden o primera clase
Funciones de orden superior
Inmutabilidad
No más loops