Python pour les scientifiques. Thierry Chappuis



Documents pareils
Python - introduction à la programmation et calcul scientifique

Calcul Scientifique avec 3

Cours 7 : Utilisation de modules sous python

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

pythonocc: une plateforme de développement agile d applications CAO.

Introduction à NetCDF

2015 kmeans. September 3, 2015

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

Calcul Formel et Numérique, Partie I

Optimisation, traitement d image et éclipse de Soleil

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

L informatique en BCPST

BACHELOR DEVELOPPEUR WEB

Présentation du langage et premières fonctions

Introduction à l informatique en BCPST

Note de cadrage du PEPI MACS Mathématiques Appliquées & Calcul Scientifique

Pourquoi R devient incontournable en recherche, enseignement et développement

Évaluation et implémentation des langages

Programmes des classes préparatoires aux Grandes Ecoles

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Éléments de programmation et introduction à Java

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Transmission d informations sur le réseau électrique

Spécifications, Développement et Promotion. Ricco RAKOTOMALALA Université Lumière Lyon 2 Laboratoire ERIC

TP 1. Prise en main du langage Python

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Cours Informatique Master STEP

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Conclusions de la session 1. L informatique, une discipline à part entière! Culture, fondamentaux et usages

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov

Outils pour les réseaux de neurones et contenu du CD-Rom

Anticiper et prédire les sinistres avec une approche Big Data

Introduction à MATLAB R

Présentation du logiciel

DEMARRER UN PROJET BIGDATA EN QUELQUES MINUTES GRACE AU CLOUD

UNIVERSITE DES ANTILLES et DE LA GUYANE Campus de Fouillole BP Pointe-à-Pitre Cedex CONTRAT LE MASTER NOM DU DOMAINE STS

Annexe commune aux séries ES, L et S : boîtes et quantiles

Renforcement des trois compétences : compréhension orale, expression orale et expression écrite à partir de documents et vidéos.

OPTION SCIENCES BELLE-ISLE-EN-TERRE

MASTER (LMD) MODELISATION, OPTIMISATION, COMBINATOIRE ET ALGORITHME

Calcul Formel et Numérique, Partie I

L indice de SEN, outil de mesure de l équité des systèmes éducatifs. Une comparaison à l échelle européenne

Éditorial. Tangente ÉDUCATION. Scratch, AlgoBox, Python. Trimestriel - n 15 - janvier 2011 Numéro spécial 16 activités TICE pour le lycée

La mesure des écarts en Sciences de l'ingénieur

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV

1 Description générale de VISFIELD

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante.

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

Petit guide pour les débutants en L A TEX

NOTICE DOUBLE DIPLÔME

MAIDESC - KO 21 Novembre 2013 Etienne Wey Alexandre Boilley

CATALOGUE DE FORMATION POLE RESSOURCES NUMERIQUES

L ingénierie numérique libre et CAELinux: passé, présent et avenir

I00 Éléments d architecture

INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING

GravoStyle 7. logiciel. pour machines à graver mécaniques & laser. optimisé par GRAVOGRAPH.

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Utilisation du Cloud StratusLab dans le cadre d application astroparticule à l APC

Développement de projets logiciels à l'aide de Python

Conception de réseaux de télécommunications : optimisation et expérimentations

Avenir Concept Monaco

1 Représentation d une image

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

Guide d aide à la réservation par internet

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Sites web éducatifs et ressources en mathématiques

PNTS. L informatique au Service de l Assurance et de la Prévoyance

Panorama des études à travers les filières. FEEL du 23 octobre 2014

Gestion de gros fichiers binaires (images) en APL*PLUS III

Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents)

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Optimisation Discrète

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

DOSSIER D INSCRIPTION PÉDAGOGIQUE

3.2. Matlab/Simulink Généralités

Table des matières. I Mise à niveau 11. Préface

Séance 0 : Linux + Octave : le compromis idéal

Cours d Algorithmique et de Langage C v 3.0

Exporter en pdf depuis Scribus

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

Introduction aux Bases de Données Relationnelles Conclusion - 1

Initiation à la programmation en Python

Extensions, Documentation, Tutoriels, Astuces

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A)

Chapitre I Notions de base et outils de travail

Etudier l informatique

Transcription:

Python pour les scientifiques Thierry Chappuis

Les besoins du scientifique Les besoin du scientifique, dans son travail de tous les jours, se résument ainsi: Acquérir des données (simulation, expériences) Manipuler et traiter ces données Visualiser les résultats et les interpréter Communiquer les résultats: produire des figures pour des publications ou des présentations

Le cahier des charges Un outils de programmation adapté au scientifique doit posséder les caractéristiques suivantes: Riche collection d algorithmes et d outils de base (FFT, fitting, intégration numérique, visualisation, etc.) Facile à apprendre (la programmation n est pas notre job) Facile à communiquer avec les collaborateurs, étudiants, clients (le code doit se lire comme un libre et se rapprocher du langage mathématique) Exécution et développement efficaces Un seul environnement/langage pour toutes les problèmes de la vie courante

Les solutions existantes Langages compilés: C, C++, Fortran Avantages: compilateurs et bibliothèques très optimisés. Désavantage: usage difficile pour le scientifique. Langages de script: Matlab Avantages: riche collection d algorithmes environnement de développement plaisant, aide de qualité, support commercial. Désavantage: langage de programmation pauvre, cher. Autres langages de script: Scilab, Octave, R, IDL Avantages: moins cher que Matlab, domaines spécifiques avancés (statistiques dans R). Désavantages: moins d algorithmes que dans Matlab et langage pas plus évolué. Souvent dédiés à un domaine.

Qu en est il de python? Les avantages Une collection très riche de bibliothèques scientifiques Un langage de programmation bien conçu et lisible Beaucoup de bibliothèques pour des tâches non scientifiques Gratuit et open source Les désavantages Pas tous les algorithmes disponibles dans les logiciels et boîtes à outils spécialisées (en constante évolution)

les briques de base Python: langage de programmation générique et moderne IPython: un interpréteur de commandes avancé Spyder: un environnement de développement à la Matlab Numpy: implantation des vecteurs et matrices Scipy: collection d algorithmes de haut niveau Matplotlib: visualisation 2 D et 3 D Mayavi: visualisation 3 D

Distributions pour les scientifiques On trouve des distributions avec programme d installation 1 clique pour les scientifiques: Pythonxy (Windows) http://code.google.com/p/pythonxy/ Enthought Python Distribution (Windows, MacOSX) http://www.enthought.com/products/epd.php Sage (Application web) http://www.sagemath.org/

Les bases de Numpy >>> a = np.array([0, 1, 2, 3]) >>> a array([0, 1, 2, 3]) >>> a.ndim 1 >>> a.shape (4,) >>> len(a) 4 >>> b = np.array([[0, 1, 2], [3, 4, 5]]) # 2 x 3 array >>> barray([[ 0, 1, 2], [ 3, 4, 5]]) >>> b.ndim 2 >>> b.shape (2, 3)

Les bases de Numpy La multiplication de matrices >>> a.dot(b) array([[ 0., 2., 3.], [ 0., 0., 3.], [ 0., 0., 0.]]) Transposée >>> a.t array([[ 0., 0., 0.], [ 1., 0., 0.], [ 1., 1., 0.]])

Les bases de Numpy Résolution d un système d équations linéaires >>> x = np.linalg.solve(a, [1, 2, 3]) >>> x array([-0.5, 0.5, 1. ]) Valeurs propres >>> np.linalg.eigvals(a) array([ 1., 2., 3.])

Scipy: la boîte à outils scipy.io : les entrées/sorties fichiers scipy.signal : les algos de traitement du signal scipy.special : fonctions spéciales scipy.stats : les algos de statistique scipy.ramdom : la gestion des nombres aléatoires scipy.linalg : l algèbre linéaire scipy.integrate : les algos d intégration numérique scipy.fftpack: la transformée de Fourier rapide scipy.interpolate: les algos d interpolation scipy.optimize: les algos d optimisation scipy.ndimage: les algos de traitement d image

Scipy: la boîte à outils import numpy as np from scipy.interpolate import interp1d import pylab as pl measured_time = np.linspace(0, 1, 10) noise = (np.random.random(10)*2-1) * 1e-1 measures = np.sin(2 * np.pi * measured_time) + noise linear_interp = interp1d(measured_time, measures) computed_time = np.linspace(0, 1, 50) linear_results = linear_interp(computed_time) cubic_interp = interp1d(measured_time, measures, kind='cubic') cubic_results = cubic_interp(computed_time)

Scipy: la boîte à outils

La visualisation avec Matplotlib pl.plot(tspan, y) pl.xlabel("time (s)", weight="bold") pl.ylabel("concentration (mol/l)", weight="bold") pl.legend(("ca", "cb")) pl.title(u"profile de concentration d'une réaction de type A -> B \ndans un réacteur batch", weight="bold")

La visualisation avec Matplotlib

La visualisation 3 D avec Matplotlib import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) x, y = np.mgrid[-10:10:100j, -10:10:100j] r = np.sqrt(x**2 + y**2) z = np.sin(r)/r ax.plot_surface(x, y, z)

La visualisation 3 D avec Matplotlib from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111, projection='3d') X, Y, Z = axes3d.get_test_data(0.05) cset = ax.contour(x, Y, Z) ax.clabel(cset, fontsize=9, inline=1)

Pleins de modules additionnels OpenOpt: algorithmes d optimisation Scikit.learn: algorithmes de machine learning Sfepy, Fipy: résolution de PDEs par éléments finis SymPy: mathématiques symboliques PyDSTool: simulation de systèmes dynamiques Biopython: bioinformatique Et beaucoup d autres

Merci de votre attention! Note: cette présentation est une adaptation libre et résumée du document «Python scientific lecture notes», édité par le EuroScipy Tutorial Team et distribué sous licence Creative Common ici: http://scipy lectures.github.com/ A retenir: «Sage: une interface unifiée vers les maths open source», jeudi 12 janvier 2012,sous sol du bâtiment A