On peut, sans trop prendre de risque, affirmer que le langage Python est le numéro 1 en data science aujourd’hui et plus généralement l’un des outils les plus utilisés dans ce domaine.
Ce langage de programmation, apparu au début des années 1990, fait presque figure de dinosaure dans un univers de la tech habitué au changement. Cependant, Python semble bien installé pour durer !
L’une des raisons de ce succès est la communauté qui s’est construite autour de ce langage et toutes les librairies externes qui ont été créées. Ces librairies sont autant d’outils qui apportent de nombreuses fonctionnalités et permettent un gain de temps considérable.
Cet article présente 10 librairies Python utiles en analyse de données, aussi bien des incontournables que des librairies plus originales.
1. Line_profiler, pour optimiser votre code
Commençons par une première librairie très simple mais extrêmement utile : Line_profiler.
En anglais, le verbe ‘to profile’ désigne (entre autres) le fait d’analyser la vitesse d’exécution d’un code. Cette librairie permet donc de voir le temps nécessaire à l’exécution de chaque ligne de code lorsque vous exécutez un script.
Il est très courant de chercher à optimiser la vitesse d’un code. Donc plutôt que de chercher au doigt mouillé ou bien tâtonner laborieusement, cette librairie vous aide à trouver en quelques instants les lignes les plus lentes.
2. Flake8, pour écrire du code de qualité
Une autre librairie ayant un objectif très simple, mais qui gagnerait à être plus utilisée (en particulier par ceux qui débutent en Python) est Flake8.
Il existe en Python un ensemble de normes syntaxiques souvent désignées par l’acronyme PEP 8. Ces normes ne sont pas des règles absolues, dans la mesure où elles n’influencent pas l’exécution d’un code. Cependant, on attend d’un développeur Python qu’il respecte ces normes pour faciliter la collaboration entre développeurs.
Flake8 est un outil qui permet de lister facilement toutes les violations de ces normes au sein d’un script Python pour pouvoir les corriger. C’est donc un outil particulièrement pratique pour les débutants cherchant à s’améliorer et à exécuter du code « de qualité ».
3. Pandas, l’Excel version Python
Si vous avez déjà un pied dans le domaine de la data science, il est probable que vous ayez entendu parler de Pandas.
Pour faire bref, Pandas est à Python ce qu’Excel est à Windows, c’est-à-dire une boîte à outils incroyable pour manipuler des données tabulaires.
C’est assurément l’une des librairies Python les plus utilisées en science des données. Si vous cherchez à manipuler des données qui peuvent être organisées sous forme de lignes et de colonnes (et ça arrive très souvent), ne cherchez plus, c’est l’outil idéal.
4. Numpy, la base pour le calcul et l’algèbre
Une autre librairie Python incontournable lorsque l’on souhaite faire de l’analyse de données est Numpy.
Il s’agit d’une librairie de calcul matriciel embarquant une quantité phénoménale d’outils mathématiques.
À la différence de Pandas, Numpy n’est pas cantonnée à l’analyse 2D : vous pouvez créer et manipuler des matrices de n’importe quelle dimension. Numpy propose également de nombreuses fonctions utiles en algèbre linéaire.
L’une des grandes forces de cette librairie est sa vitesse d’exécution : si une fonction Numpy correspond à vos besoins, vous aurez beaucoup de mal à trouver une alternative plus rapide (en Python).
5 & 6. Plotly (et Matplotlib), pour des visualisations rapides et percutantes
Une tâche courante en analyse de données consiste à créer des visualisations, que ce soit pour présenter des résultats à vos collègues ou même pour avoir une meilleure compréhension d’un problème.
Il existe de nombreuses librairies Python à cette fin. Une librairie particulièrement séduisante si vous travaillez avec des notebooks est Plotly : grâce à une implémentation en javascript (mais rassurez-vous, vous n’avez que du code Python à écrire), cette librairie permet de créer rapidement des visualisations interactives très agréables à manipuler.
Une alternative très populaire est Matplotlib, qui offre plus de fonctionnalités et qui est plus stable avec de gros massifs de données, mais qui n’est pas interactive cependant.
7 & 8. FastAPI (et Flask), pour donner vie à votre travail
Créer une API lorsque l’on souhaite déployer un algorithme (tel qu’un modèle de machine learning) est devenu une pratique standard aujourd’hui.
Encore une fois, plusieurs options existent, mais la plus séduisante à ce jour est sûrement FastAPI. Très facile à prendre en main, cette librairie a une documentation claire et concise et permet d’écrire en peu de lignes une API complète et fonctionnelle.
Une autre option est Flask : jouissant d’une très large communauté, cette librairie offre plus de liberté que FastAPI, mais est de fait plus difficile à prendre en main.
9. Scikit-learn, la boîte à outil de machine learning
Scikit-learn est l’une des librairies phares en machine learning. C’est une véritable boîte à outils contenant de très nombreux algorithmes : régression linéaire ou logistique, forêt aléatoire, SVM, clustering…
Elle contient également beaucoup de fonctions utilitaires pour évaluer et sélectionner un modèle ou encore pour nettoyer et préparer des données avant un entraînement.
Bref, c’est la librairie idéale pour le data scientist, hormis pour créer des réseaux de neurones pour lesquels il existe des librairies dédiées. Pour l’anecdote, c’est en grande partie à des chercheurs de l’INRIA que l’on doit cette librairie.
10. Rise, pour ne plus perdre de temps sur PowerPoint
Pour finir, un outil plus original : Rise. Cette librairie vous permet de transformer facilement un notebook Jupyter en un diaporama façon PowerPoint.
Étant donné que les notebooks Jupyter sont très répandus, il est probable que vous vous en serviez au quotidien pour différentes analyses de données. Donc plutôt que de passer du temps à préparer un diaporama, utilisez cette librairie pour présenter vos résultats à vos collègues.
Cette liste n’est bien sûr pas exhaustive ; au moment d’écrire cet article, 326 208 librairies sont référencées sur pypi.org, l’index de package pour Python. En particulier, les librairies dédiées aux réseaux de neurones, qui sont une facette majeure de la data science aujourd’hui, ont été laissées de côté, car il faudrait un article spécifique à leur sujet.
Une chose à retenir : il existe une librairie Python pour (presque) tout, donc avant de coder, prenez le temps de chercher, vous n’êtes certainement pas le premier à être confronté à votre problème.