ebook img

Analyse scientifique avec Python PDF

165 Pages·2016·1.26 MB·French
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Analyse scientifique avec Python

Analyse scientifique avec Python Version Juin 2017 Yannick Copin 30/06/17, 05:29 Table des matières 1 Introduction 1 1.1 Pourquoi un module d’analyse scientifique? . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Pourquoi Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Initiation à Python 3 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Types de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Structures de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5 Objets itérables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.6 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.7 Bibliothèques et scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.8 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.9 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.10 Entrées-sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.11 Éléments passés sous silence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Bibliothèque standard 21 3.1 Gestion des arguments/options de la ligne de commande . . . . . . . . . . . . . . . . . . 21 3.2 [c]Pickle : sérialisation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Batteries included . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.4 Text/Graphical User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4 Bibliothèques numériques de base 25 4.1 Numpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2 Scipy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.3 Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5 Bibliothèques scientifiques avancées 43 5.1 Pandas & xarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2 Astropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3 Autres librairies scientifiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6 Spécificités Euclid 59 6.1 Developers’ Workshops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.2 Librairies EDEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.3 Git et GitLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 7 Développer en python 61 7.1 Le zen du python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 i 7.2 Développement piloté par les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7.3 Outils de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 7.4 Python 2 vs. python 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 8 Références supplémentaires 71 8.1 Documentation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8.2 Listes de liens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8.3 Livres libres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 8.4 Cours en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9 Exemples 75 9.1 Mean power (fonction, argparse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9.2 Formes (POO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 9.3 Cercle circonscrit (POO, argparse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.4 Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 10 Exercices 89 10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 10.2 Manipulation de listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.3 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.4 Manipulation de tableaux (arrays) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 10.5 Méthodes numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 10.6 Visualisation (matplotlib) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.7 Mise en oeuvre de l’ensemble des connaissances acquises. . . . . . . . . . . . . . . . . . . 95 10.8 Exercices en vrac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 11 Annales d’examen 97 11.1 Simulation de chute libre (partiel nov. 2014) . . . . . . . . . . . . . . . . . . . . . . . . . 97 11.2 Examen janvier 2015 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 12 Projets 99 12.1 Projets de physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 12.2 Projets astrophysiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 12.3 Projets divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 12.4 Projets statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 12.5 Projets de visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 13 Démonstration Astropy 111 13.1 Fichiers FITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 13.2 Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 13.3 Quantités et unités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 13.4 Calculs cosmologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 14 Pokémon Go! (pandas & seaborn) 121 14.1 Lecture et préparation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 14.2 Accès aux données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 14.3 Quelques statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 14.4 Visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 15 Méthode des rectangles 131 16 Fizz Buzz 133 17 Algorithme d’Euclide 135 18 Crible d’Ératosthène 137 19 Carré magique 139 20 Suite de Syracuse 141 ii 21 Flocon de Koch 143 22 Jeu du plus ou moins 147 23 Animaux 149 24 Particules 153 25 Jeu de la vie 163 26 Median Absolute Deviation 165 27 Distribution du pull 167 28 Quadrature 169 29 Zéro d’une fonction 171 30 Quartet d’Anscombe 173 31 Suite logistique 177 32 Ensemble de Julia 179 33 Trajectoire d’un boulet de canon 181 34 Équation d’état de l’eau 183 35 Solutions aux exercices 187 36 Examen final, Janvier 2015 189 36.1 Exercice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 36.2 Le problème du voyageur de commerce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 36.3 Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Bibliographie 193 iii iv 1 CHAPITRE Introduction Version École d’été Euclid 2017 du 29/06/17, 06 :38 Auteur Yannick Copin <ipnl.in2p3.fr> Pourquoi un module d’analyse scientifique? — Pour générer ses données, p.ex. simulations numériques, contrôle d’expériences; — Pour traiter ses données, i.e. supprimer les artefacts observationnels; — Pour analyser ses données, i.e. extraire les quantités physiques pertinentes, p.ex. en ajustant un modèle; — Pour visualiser ses données, et appréhender leur richesse multi-dimensionnelle; — Pour présenter ses données, p.ex. générer des figures prêtes à publier. Ce module s’addresse donc avant tout aux futurs expérimentateurs, phénoménologistes ou théoriciens voulant se frotter à la réalité des observations. Pourquoi Python? Les principales caractéristiques du langage Python : — Syntaxe simple et lisible : langage pédagogique et facile à apprendre et à utiliser; — Langage interprété : utilisation interactive ou script exécuté ligne à ligne, pas de processus de compilation; — Haut niveau : typage dynamique, gestion active de la mémoire, pour une plus grande facilité d’emploi; — Multi-paradigme : langage impératif et/ou orienté objet, selon les besoins et les capacités de chacun; — Logiciel libre et ouvert, largement répandu (multi-plateforme) et utilisé (forte communauté); — Riche bibliothèque standard : Batteries included; — Riche bibliothèque externe : de nombreuses bibliothèques de qualité, dans divers domaines (y compris scientifiques), sont déjà disponibles. L’objectif est bien d’apprendre un seul langage de haut niveau, permettant tout aussi bien des analyses rapides dans la vie de tous les jours – quelques lignes de code en intéractif – que des programes les plus complexes (projets de plus de 100000 lignes). 1 Analyse scientifique avec Python, Version Juin 2017 Liens : — Getting Started — Python Advocacy Index — genindex — search 2 Chapitre 1. Introduction 2 CHAPITRE Initiation à Python Table des matières — Initiation à Python — Introduction — Installation — Notions d’Unix — L’invite de commande — Types de base — Structures de programmation — Les chaînes de caractères — Indexation — Sous-liste (slice) — Méthodes — Formatage — Objets itérables — Fonctions — Bibliothèques et scripts — Bibliothèques externes — Bibliothèques personnelles et scripts — Exceptions — Classes — Entrées-sorties — Intéractif — Fichiers — Éléments passés sous silence — Python 3.x Introduction Installation Cette introduction repose essentiellement sur les outils suivants : 3 Analyse scientifique avec Python, Version Juin 2017 — Python 2.7 (inclus l’interpréteur de base et la bibliothèque standard) — les bibliothèques scientifiques Numpy et Scipy, — la bibliothèque graphique : Matplotlib, — un interpréteur évolué, p.ex. ipython, — un éditeur de texte évolué, p.ex. emacs, vi, gedit ou Atom. Ces logiciels peuvent être installés indépendamment, de préférence sous Linux (p.ex. Ubuntu ou votre distributionpréférée),ousousWindowsouMacOS.Ilexisteégalementdesdistributions«clésenmain»: — Python(x,y) (Windows) — Enthought Canopy (Windows, MacOS, Linux, gratuite pour les étudiants du supérieur) Notions d’Unix Les concepts suivants sont supposés connus : — ligne de commande : éxécutables et options — arborescence : chemin relatif ([./]...) et absolu (/...), navigation (cd) — gestion des fichiers (ls, rm, mv) et répertoires (mkdir) — gestion des éxécutables : $PATH, chmod +x — gestion des processus : &, Control-c, Control-z + bg — variables d’environnement : export, .bashrc Liens : — Quelques notions et commandes d’UNIX — Introduction to Unix Study Guide L’invite de commande Il existe principalement deux interpréteurs intéractifs de commandes Python : — python : interpréteur de base : $ python Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> — Control-d pour sortir — help(commande) pour obtenir l’aide d’une commande — A priori, pas d’historique des commandes ni de complétion automatique. L’interpréteur de base permet également d’interpréter un « script », càd un ensemble de commandes regroupées dans un fichier texte (généralement avec une extension .py) : python mon_script.py — ipython : interpréteur évolué (avec historique et complétion automatique des commandes) : $ ipython Python 2.7.12 (default, Nov 19 2016, 06:48:10) Type "copyright", "credits" or "license" for more information. IPython 5.3.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: 4 Chapitre 2. Initiation à Python

Description:
Python 2.7 (inclus l'interpréteur de base et la bibliothèque standard) %quickref -> Quick reference Attention : Ne pas confondre « = » (affectation d'une variable) et « == » (test logique GUI (Graphical User Interface) : Tkinter,.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.