Python avancé et programmation scientifique : techniques d'algorithmisation et de construction de programmes compacts et efficaces

Des techniques de programmation avancées dans le contexte numérique ainsi que dans les domaines de visualisation et de traitement d'images, avec différents sujets à faire en autonomie. ©Electre 2019

Enregistré dans:
Détails bibliographiques
Auteur principal : Karczmarczuk Jerzy (Auteur)
Format : Livre
Langue : français
Titre complet : Python avancé et programmation scientifique : techniques d'algorithmisation et de construction de programmes compacts et efficaces / Jerzy Karczmarczuk
Publié : Paris : Ellipses , DL 2019
Description matérielle : 1 vol. (VIII-392 p.)
Collection : Références sciences
Sujets :
  • P. 1
  • 1 Introduction
  • P. 1
  • 1.1 Pourquoi Python
  • P. 3
  • 1.2 À qui s'adresse ce livre
  • P. 5
  • 1.3 Un peu de méthodologie
  • P. 9
  • 2 Objets dans Python. Structures et fonctionnalités
  • P. 9
  • 2.1 Propriétés essentielles. Exemples
  • P. 11
  • 2.1.1 Variables et dictionnaires
  • P. 13
  • 2.1.2 Classe comme environnement
  • P. 13
  • 2.2 Surcharge des opérateurs
  • P. 13
  • 2.2.1 Arithmétique et héritage
  • P. 16
  • 2.2.2 Héritage des classes numériques. Surcharge de _new_
  • P. 18
  • 2.2.3 Surcharge de l'indexation
  • P. 19
  • 2.2.4 Opérateurs formés par le programmeur ?
  • P. 21
  • 2.2.5 Un exemple plus long : différentiation automatique
  • P. 24
  • 2.3 Digression : héritage multiple
  • P. 25
  • 2.3.1 L'ordre de résolution des méthodes (MRO)
  • P. 28
  • 2.4 Fonctions et objets
  • P. 28
  • 2.4.1 Fonctions et persistance
  • P. 30
  • 2.4.2 Fermetures
  • P. 31
  • 2.4.3 Modification d'un programme pendant son exécution
  • P. 32
  • 2.4.4 Décorations des fonctions
  • P. 33
  • 2.4.5 Mémoïsation
  • P. 34
  • 2.4.6 Exemple. Distance de Levenshtein-Damerau entre deux textes
  • P. 36
  • 2.4.7 Outils de mémoïsation existants
  • P. 38
  • 2.5 Exceptions comme objets
  • P. 39
  • 2.5.1 Traitement et héritage des Exceptions
  • P. 41
  • 2.5.2 Rapport post mortem (traceback)
  • P. 42
  • 2.5.3 Exceptions comme structures de contrôle
  • P. 45
  • 2.6 Instruction with et Context Managers
  • P. 47
  • 2.7 Slots
  • P. 49
  • 2.8 Exercices
  • P. 57
  • 3 Conteneurs, séquences et itérateurs
  • P. 57
  • 3.1 Structures standard, codage pas toujours
  • P. 59
  • 3.1.1 Itérateurs implicits. Structures virtuelles prédéfinies
  • P. 61
  • 3.1.2 Exemple. Séries de Taylor
  • P. 65
  • 3.2 Librairie Collections
  • P. 65
  • 3.2.1 Compteurs
  • P. 66
  • 3.2.2 Tuples nommés
  • P. 68
  • 3.2.3 Deques
  • P. 72
  • 3.3 Itérateurs, leurs combinaison et contrôle
  • P. 73
  • 3.3.1 Suite logistique ; un exemple animé
  • P. 77
  • 3.3.2 Exemples de générateurs
  • P. 79
  • 3.3.3 Itertools
  • P. 82
  • 3.3.4 Générateurs - managers et autres utilités ; librairie Contextlib
  • P. 83
  • 3.3.5 Pièges d'évaluation paresseuse
  • P. 84
  • 3.4 Générateurs et non-déterminisme logique
  • P. 85
  • 3.4.1 Backtracking
  • P. 86
  • 3.4.2 Itérateurs et génération combinatoire
  • P. 90
  • 3.5 Générateurs étendus : coroutines
  • P. 93
  • 3.5.1 L'expression yield et la méthode send
  • P. 95
  • 3.5.2 Générateurs-coroutines et un simple modèle de concurrence
  • P. 97
  • 3.6 Itérations, coroutines et non-déterminisme
  • P. 99
  • 3.6.1 Coroutines et programmation par flots de données
  • P. 106
  • 3.6.2 Blocs élémentaires et composites ; exemples de circuits
  • P. 111
  • 3.6.3 Exemple évolué. Un oscillateur atténué décomposé
  • P. 113
  • 3.7 Exercices
  • P. 123
  • 4 Librairie NumPy. Usage avancé des tableaux
  • P. 123
  • 4.1 Tableaux comme objets mathématiques
  • P. 125
  • 4.1.1 Solution de l'équation de Laplace
  • P. 128
  • 4.2 Création des tableaux
  • P. 132
  • 4.2.1 Sous-classes de ndarray
  • P. 134
  • 4.2.2 Sous-classes standard
  • P. 136
  • 4.3 Fonctions universelles
  • P. 138
  • 4.3.1 Vectorisation
  • P. 139
  • 4.3.2 Sélection conditionnelle
  • P. 141
  • 4.4 Indexation avancée
  • P. 142
  • 4.4.1 Indices booléens composites
  • P. 142
  • 4.4.2 Indices entiers composites
  • P. 143
  • 4.4.3 Indices tabulaires et géométrie
  • P. 146
  • 4.4.4 Exemple. Arbre de Feigenbaum, et fonctions de histogrammation
  • P. 148
  • 4.5 Traitement d'images et visualisation avec Python
  • P. 149
  • 4.5.1 Génération des motifs géométriques. Couleurs
  • P. 154
  • 4.5.2 Filtrage des contours et équilibrage de l'histogramme
  • P. 157
  • 4.5.3 Distorsion des images
  • P. 161
  • 4.5.4 Visualisation des champs vectoriels, technique LIC
  • P. 164
  • 4.5.5 Projections cartographiques
  • P. 170
  • 4.6 Simulation en physique statistique : modèle d'Ising 2D
  • P. 172
  • 4.6.1 Implémentation
  • P. 174
  • 4.7 Exercices
  • P. 183
  • 5 Quelques objets sous le capot
  • P. 183
  • 5.1 Ajout dynamique des méthodes
  • P. 187
  • 5.2 Gestion avancée des attributs
  • P. 190
  • 5.2.1 Décodage des méthodes spéciales
  • P. 192
  • 5.2.2 Properties
  • P. 194
  • 5.2.3 Exemple de properties : températures
  • P. 195
  • 5.2.4 Properties spécifiées par décorateurs
  • P. 197
  • 5.3 Descripteurs
  • P. 197
  • 5.3.1 Propriétés essentielles des descripteurs
  • P. 200
  • 5.3.2 Implémentation des méthodes comme descripteurs
  • P. 202
  • 5.3.3 Implémentation de properties et d'autres descripteurs de données
  • P. 203
  • 5.3.4 La construction super(...) et les descripteurs
  • P. 204
  • 5.3.5 Héritage multiple et super(...)
  • P. 206
  • 5.3.6 Une catégorie-exemple de descripteurs : les proxies
  • P. 208
  • 5.4 Décorateurs avancés
  • P. 208
  • 5.4.1 Paramétrisation des décorateurs
  • P. 209
  • 5.4.2 Classes décoratrices, et classes décorées
  • P. 211
  • 5.5 Métaclasses
  • P. 212
  • 5.5.1 A-t-on besoin de ce concept ?
  • P. 213
  • 5.5.2 Usage des métaclasses
  • P. 215
  • 5.5.3 Création dynamique des classes
  • P. 216
  • 5.5.4 La préparation de la classe
  • P. 217
  • 5.6 Exercices
  • P. 221
  • 6 Programmes concurrents et asynchrones
  • P. 221
  • 6.1 Parallélisme et concurrence
  • P. 226
  • 6.1.1 Digression méthodologique : lois de Amdahl et de Gustafson
  • P. 228
  • 6.1.2 Threads et processus : quelle différence ?
  • P. 229
  • 6.2 Multi-traitement et processus
  • P. 229
  • 6.2.1 Module multiprocessing et son usage de base
  • P. 233
  • 6.2.2 Partitionnement des données
  • P. 235
  • 6.2.3 Échange des données et communication
  • P. 238
  • 6.2.4 Partage des données et verrous
  • P. 239
  • 6.2.5 Autre exemple de communication : tri parallèle
  • P. 243
  • 6.2.6 MPI
  • P. 246
  • 6.3 Threads
  • P. 250
  • 6.3.1 Exemple, une variante du tri
  • P. 252
  • 6.3.2 Timers et événements
  • P. 259
  • 6.4 Asyncio
  • P. 261
  • 6.4.1 Boucle événementielle
  • P. 265
  • 6.4.2 Constructions async et await, et les coroutines
  • P. 270
  • 6.4.3 Interaction et communication
  • P. 271
  • 6.4.4 Flux
  • P. 274
  • 6.5 Exercices
  • P. 281
  • 7 Accélération des programmes
  • P. 281
  • 7.1 Quelques avertissements
  • P. 283
  • 7.2 Numba
  • P. 285
  • 7.2.1 Configuration et paramétrage de Numba
  • P. 286
  • 7.2.2 Compilation anticipée
  • P. 287
  • 7.2.3 Optimisation des classes
  • P. 288
  • 7.2.4 Vectorisation et fonctions universelles
  • P. 290
  • 7.3 Cython
  • P. 292
  • 7.3.1 Directive cdef et types C dans un programme Python
  • P. 294
  • 7.3.2 Paramétrage avancé de Cython
  • P. 295
  • 7.4 PyPy et autres outils
  • P. 298
  • 7.5 GPU et Python
  • P. 299
  • 7.5.1 Logiciel de support
  • P. 300
  • 7.5.2 CUDA, la première leçon
  • P. 304
  • 7.5.3 Interface PyCuda
  • P. 308
  • 7.5.4 Encore quelques outils d'interfaçage
  • P. 311
  • 7.6 Parallélisme et Numba
  • P. 311
  • 7.6.1 Quelques éléments d'interfaçage CUDA
  • P. 314
  • 7.7 Exercices
  • P. 321
  • 8 Structures de données sérialisées
  • P. 321
  • 8.1 Pickle
  • P. 324
  • 8.1.1 La machine Pickle
  • P. 326
  • 8.1.2 Pickle : outils de support
  • P. 327
  • 8.1.3 Shelve
  • P. 327
  • 8.1.4 Dill
  • P. 329
  • 8.2 JSON
  • P. 330
  • 8.3 Autres outils
  • P. 331
  • 8.4 Exercices
  • P. 335
  • A Solutions des exercices choisis
  • P. 386
  • Liste des exercices
  • P. 387
  • Index