Introduction ############ :Version: |version| du |today| :Auteur: Yannick Copin `` .. role:: python(code) :language: python 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 programmes les plus complexes (projets de plus de 100 000 lignes). Comment lire ce cours? ====================== Ce cours a évolué au fil du temps, et inclut des parties destinées à différents publics. * Pour un (re)mise à niveau Python et une introduction à l'analyse scientifique, focalisez-vous sur: * :ref:`install`, * :ref:`cours`, * :ref:`standard`, * :ref:`science`, * :ref:`code`; * Pour des concepts plus avancés, complétez avec: * :ref:`cours2`, * :ref:`science2`; * Les outils de gestion de projet sont présentés dans: * :ref:`packaging`, * :ref:`git-scm`, * :ref:`documentation`, * :ref:`tests`. * Les éléments liés à la Science des données sont: * :ref:`outils-statistiques`, * :ref:`data`. * Des exercices de programmation Python de différents niveaux sont proposés dans la section :ref:`exercices`, et des mini-projets plus conséquents dans :ref:`projets`. .. rubric:: Liens: * `Getting Started `_ * `Python Advocacy `_