Applications scientifiques¶
Contexte¶
Python est fréquemment utilisé pour des applications scientifiques haute-performances. Il est largement utilisé dans les projets universitaires et scientifiques car il est facile à écrire et donne de bons résultats.
En raison de sa nature haute performance, le calcul scientifique en Python utilise souvent des bibliothèques externes, généralement écrites dans des langages plus rapides (comme C ou FORTRAN pour les opérations matricielles). Les principales bibliothèques utilisées sont NumPy, SciPy et Matplotlib. Entrer dans le détail de ces bibliothèques va au-delà du périmètre couvert par ce guide Python. Cependant, une introduction complète à l’écosystème Python scientifique peut être trouvée dans les notes de lecture pour le Python scientifique (en)
Outils¶
IPython¶
IPython est une version améliorée de l’interpréteur Python, qui fournit des fonctionnalités d’un grand intérêt pour les scientifiques. Le mode inline permet l’affichage de graphiques et de diagrammes dans le terminal (pour la version basée sur Qt). De plus, le mode notebook supporte la programmation lettrée et la science reproductible en générant un notebook Python basé sur le Web. Ce notebook vous permet de stocker des bouts de code Python à côté des résultats et des commentaires supplémentaires (HTML, LaTeX, Markdown). Le notebook peut alors être partagé et exporté dans divers formats de fichiers.
Bibliothèques¶
NumPy¶
NumPy est une bibliothèque de bas niveau écrite en C (et FORTRAN) pour les fonctions mathématiques de haut niveau. NumPy dépasse habilement le problème d’exécuter des algorithmes plus lents sur Python en utilisant des tableaux multidimensionnels et des fonctions qui opèrent sur des tableaux. Tout algorithme peut alors être exprimé comme une fonction sur des tableaux, permettant aux algorithmes de exécuter rapidement.
NumPy fait partie du projet SciPy, et est mis à disposition comme bibliothèque séparée afin que les gens qui ont seulement besoin des exigences de base puissent l’utiliser sans installer le reste de SciPy.
NumPy est compatible avec les versions de Python 2.4 à 2.7.2 et 3.1+.
Numba¶
Numba est un compilateur Python conscient de NumPy (compilateur spécialisé just-in-time (JIT)) qui compile le code Python (et NumPy) annoté pour LLVM (Low Level Virtual Machine) via des décorateurs spéciaux. En bref, Numba utilise un système qui compile le code Python avec LLVM en code qui peut être exécuté nativement à l’exécution.
SciPy¶
SciPy est une bibliothèque qui utilise NumPy pour plus de fonctions mathématiques. SciPy utilise des tableaux numpy comme structure de base pour les données, et est livré avec des modules pour diverses tâches couramment utilisées dans la programmation scientifique, incluant l’algèbre linéaire, le calcul intégral (calcul différentiel), la résolution d’équation différentielle ordinaire et le traitement du signal.
Matplotlib¶
Matplotlib est une bibliothèque de création de diagrammes flexible pour créer des diagrammes 2D et 3D interactifs qui peuvent également être enregistrés comme des figures d’une qualité suffisante pour illustrer des manuscrits. L’API reflète de plusieurs façons celle de MATLAB, facilitant la transition des utilisateurs MATLAB à Python. De nombreux exemples, avec le code source pour les recréer, sont disponibles dans la galerie de matplotlib.
Pandas¶
Pandas est une bibliothèque de manipulation de données basée sur Numpy qui fournit de nombreuses fonctions utiles pour accéder, indexer, fusionner et le regrouper des données facilement. La structure de données principale (DataFrame) est proche de ce qui peut être trouvé dans le paquet statistique R; autrement dit, des tableaux de données hétérogènes avec l’indexation par nom, les opérations sur les séries temporelles et l’auto-alignement des données.
Ressources¶
L’installation de paquets Python scientifiques peut être compliquée, comme beaucoup de ces paquets sont mis en œuvre comme des extensions Python en C qui doivent être compilées. Cette section liste les différentes distributions Python dites scientifiques qui fournissent des collections précompilées et faciles à installer de paquets Python scientifiques.
Binaires Windows non-officiels pour les paquets d’extension Python¶
Beaucoup de gens qui font le calcul scientifique sont sous Windows, et encore beaucoup de paquets de calcul scientifique sont notoirement difficiles à builder et à installer sur cette plateforme. Christoph Gohlke cependant, a compilé une liste de binaires Windows pour de nombreux paquets Python utiles. La liste des paquets a grossi en devenant une ressource Python principalement scientifique à une liste plus générale. Si vous êtes sur Windows, vous pouvez y jeter un œil.
Anaconda¶
Continuum Analytics met à disposition la distribution Python Anaconda Python qui inclue tous les paquets Python scientifiques les plus courants, ainsi que de nombreux paquets liés à l’analyse de données et au big data. Anaconda lui-même est gratuit, et Continuum vend un certain nombre d’add-ons propriétaires. Des licences gratuites pour ces add-ons sont disponibles pour les universitaires et les chercheurs.