Références

L'actualité

Librairie

L'information

NumPy

NumPy est une extension du langage de programmation Python, destinée à manipuler des matrices ou tableaux multidimensionnels ainsi que des fonctions mathématiques opérant sur ces tableaux. Plus précisément, cette bibliothèque logicielle libre et open source fournit de multiples fonctions permettant notamment de créer directement un tableau depuis un fichier ou au contraire de sauvegarder un tableau dans un fichier, et manipuler des vecteurs, matrices et polynômes. NumPy est la base de SciPy, regroupement de bibliothèques Python autour du calcul scientifique.

SciPy

SciPy est un projet visant à unifier et fédérer un ensemble de bibliothèques Python à usage scientifique. Scipy utilise les tableaux et matrices du module NumPy. Cette distribution de modules est destinée à être utilisée avec le langage interprété Python afin de créer un environnement de travail scientifique très similaire à celui offert par Scilab, GNU Octave, Matlab voire R. Il contient par exemple des modules pour l'optimisation, l'algèbre linéaire, les statistiques, le traitement du signal ou encore le traitement d'images. Il offre également des possibilités avancées de visualisation grâce au module matplotlib.

Afin d'obtenir d'excellentes performances d'exécution (point faible des langages interprétés), la plupart des algorithmes de SciPy et NumPy sont codés en C. Le module NumPy permet d'appliquer des opérations simultanément sur l'ensemble d'un tableau permettant d'écrire un code plus lisible, plus facile à maintenir et donc plus efficace. Le projet suit la même philosophie que le langage Python à savoir clarté du code, facilité d'apprentissage et extensibilité.

Le projet est sous licence libre (BSD) et sponsorisé par Enthought (en), entreprise informatique qui développe également la distribution de Python Enthought Canopy, destinée au calcul scientifique.

Pandas

Pandas est une bibliothèque écrite pour le langage de programmation Python permettant la manipulation et l'analyse des données. Elle propose en particulier des structures de données et des opérations de manipulation de tableaux numériques et de séries temporelles. Pandas est un logiciel libre sous licence BSD2.

Les principales structures de données sont les séries (pour stocker des données selon une dimension - grandeur en fonction d'un index), les DataFrames (pour stocker des données selon 2 dimensions - lignes et colonnes), les Panels (pour représenter des données selon 3 dimensions, les Panels4D ou les DataFrames avec des index hiérarchiques aussi nommés MultiIndex (pour représenter des données selon plus de 3 dimensions - hypercube).

IPython

IPython est un terminal interactif, ou shell, pour le langage de programmation Python qui propose des fonctionnalités telles que l'introspection, une syntaxe additionnelle, la complétion et un historique riche.

En 2014, la communauté de développement décide de scinder le projet en deux :

  • la partie spécifique au langage Python reste dans le projet IPython ;
  • la partie indépendante du langage passe dans un nouveau projet nommé Jupyter (pour Julia, Python, R).
La version 3.0 sera la dernière version "monolithique" d'IPython.

Jupyter

Jupyter est une application web utilisée pour programmer dans plus de 40 langages de programmation, dont Julia, Python, R, Ruby ou encore Scala. Jupyter est une évolution du projet IPython. Jupyter permet de réaliser des calepins ou notebooks, c'est-à-dire des programmes contenant à la fois du texte en markdown et du code en Julia, Python, R... Ces notebooks sont utilisés en science des données pour explorer et analyser des données.

Jupyter s'appuie sur un noyau IPython pour Python 2, un noyau IPython pour Python 3, IRkernel, un noyau pour le langage R et un noyau pour le langage Julia, IPyLua, noyau pour le langage Lua, IRuby, noyau pour le langage Ruby, etc. Seuls les noyaux pour les langages Julia, Python, R et Scala sont maintenus par les développeurs principaux du projet, les autres sont développés par différentes communautés de développeurs.

Matplotlib

Matplotlib est une bibliothèque du langage de programmation Python destinée à tracer et visualiser des données sous formes de graphiques. Elle peut être combinée avec les bibliothèques python de calcul scientifique NumPy et SciPy. Matplotlib est distribuée librement et gratuitement sous une licence de style BSD. Sa version stable actuelle (la 2.0.1 en 2017) est compatible avec la version 3 de Python.

Plusieurs points rendent cette bibliothèque intéressante :

  • Export possible en de nombreux formats matriciels (PNG, JPEG...) et vectoriels (PDF, SVG...)
  • Documentation en ligne en quantité, nombreux exemples disponibles sur internet
  • Forte communauté très active
  • Interface pylab : reproduit fidèlement la syntaxe MATLAB
  • Bibliothèque haut niveau : idéale pour le calcul interactif

MLxtend

MLxtend (machine learning extensions) is a Python library of useful tools for the day-to-day data science tasks.