1. Brève histoire du langage
  2. Caractéristiques remarquables
  3. Librairies scientifiques et machine learning

Brève histoire du langage

Guido van Rossum a débuté la construction du langage Python en 1989 avant de le rendre public en 1991. Le nom de ce nouveau langage lui fut inspiré par les Monty Python, la fameuse troupe d’humoristes britanniques dont van Rossum était fan.

En décembre 2008, Python 3.0 (ou Python 3000) représenta une évolution majeure du langage, incompatible avec les versions précédentes, désormais obsolètes. Elle incluait par exemple le jeu de caractère Unicode de façon native.

Depuis 2016, la popularité de Python ne cesse d’augmenter. En 2022, il se trouvait en deuxième place des langages de programmation, juste derrière Javascript. Au moment de l’écriture de ce billet, la dernière version stable est la 3.12.2.

Caractéristiques remarquables

Premièrement, Python est un langage de script, c’est-à-dire un langage interprété et non compilé. Il s’apparente ainsi à Perl ou AWK mais se veut beaucoup plus généraliste et élégant. Les erreurs sont donc détectées au moment de l’exécution, notamment en levant des exceptions, lesquelles peuvent afficher des informations de débogage et entraîner un traitement approprié.

Dans sa recherche d’élégance et de clarté, Python se distingue par l’indentation qui délimite les blocs d’instructions au lieu d’accolades, comme par exemple en C, C++ ou Perl.

Une autre caractéristique importante est l’existence de types de données de haut niveau tels que les listes et les dictionnaires. C’est aussi un langage orienté objet et modulaire, ce qui favorise la maintenance et la réutilisation facile du code.

Librairies scientifiques et machine learning

Grâce à un ensemble de librairies très puissantes qui complètent la librairie standard, Python permet la manipulation de données, leur analyse, ou encore la résolution numérique de problèmes. Cet environnement enrichi est notamment un excellent substitut à la plateforme payante MATLAB. Parmi les librairies Python les plus importantes figurent :

  • NumPy, librairie incontournable car elle fournit des tableaux multidimensionnels d’un type donné (ndarrays, pour N-dimensional arrays, de type dtype) et des matrices ainsi que des outils très performants (vectorisés) pour les manipuler (par exemple des opérations arithmétiques, la multiplication matricielle et le produit scalaire avec dot, le produit vectoriel avec cross, ou encore les vecteurs et valeurs propres avec eig) ;
  • SciPy, qui étend les fonctionnalités de NumPy (par exemple en algèbre linéaire, intégration, interpolation, optimisation, statistique, transformation de Fourier) ;
  • Matplotlib ou plotly, outils de visualisation similaire à GNUplot;
  • Pandas, qui s’appuie sur les librairies précédentes et surtout NumPy pour manipuler des données à une dimension repérées par un index (Series) ou à deux dimensions repérées par un index et des colonnes (DataFrame).

Plus spécifiquement au domaine de la chimie physique, la librairie MDAnalysis a déjà été mentionnée dans le billet consacré à la modélisation de l’eau. Cette librairie facilite l’analyse de trajectoires de dynamique moléculaire enregistrées sous une large gamme de formats. Elle s’appuie là encore sur la librairie NumPy. Deux librairies similaires à MDAnalysis sont MDtraj (dont le développement semble en sommeil sur Github) et pytraj (lié au code de dynamique moléculaire Amber et proposant un nombre de formats plus limité). Quant aux spectroscopistes, ils ont la possibilité d’étendre les capacités de logiciels tels qu’Origin à l’aide de code en Python.

Enfin, l’apprentissage machine (machine learning) est facilité en Python grâce à l’existence de librairies spécifiques telles que scikit-learn, TensorFlow (développée par Google) ou PyTorch (développée par Meta).

Découvrir et approfondir Python

La communauté des utilisateurs de Python étant très grande, il existe de nombreuses ressources pour découvrir ou approfondir ce langage. En anglais, l’ensemble des documents fournis par Bernd Klein est par exemple très utile. Une liste de ressources en français est donnée sur le wiki du site principal. On peut aussi mentionner l’excellent MOOC sur Python proposé par l’Université Côte d’Azur.

Laisser un commentaire