Dans cet article, je te présente 9 bibliothèques Python Data Science peu communes, pour des tâches autres que celles couramment réalisées avec Pandas, Scikit-learn et Matplotlib. Pour les incontournables, consulte notre article sur les bibliothèques Python pour la data science.
Pandas et Scikit-learn sont les premières bibliothèques qui viennent à l’esprit pour le machine learning, mais il est toujours bon de connaître les autres offres de l’écosystème Python.
Certaines de ces bibliothèques ont évolué depuis la première version de cet article (FuzzyWuzzy est devenue TheFuzz, Gym est devenue Gymnasium) et l’une d’elles n’est plus maintenue (PyFlux) : je l’indique à chaque fois.
En bref : en dehors de Pandas, Scikit-learn et Matplotlib, 9 bibliothèques Python peu communes répondent à des besoins précis : télécharger un fichier (wget), manipuler les dates (Pendulum), traiter des classes déséquilibrées (imbalanced-learn), chercher des mots-clés dans un texte (FlashText), comparer des chaînes approximativement (TheFuzz), modéliser des séries temporelles (PyFlux, désormais non maintenue), visualiser des volumes 3D (IPyvolume), créer des applications web de visualisation (Dash) et tester l’apprentissage par renforcement (Gymnasium).
Tu peux aussi exécuter tous les exemples dans ce notebook Google Colab : chaque extrait de code est dans sa propre cellule, prêt à être modifié.
Python est un langage incroyable : c’est l’un des langages de programmation à la croissance la plus rapide au monde. Il a maintes fois prouvé son utilité, que ce soit comme développeur web, data scientist ou développeur logiciel.
L’écosystème de Python et de ses bibliothèques en fait un choix judicieux pour les utilisateurs, débutants comme avancés. Cet ensemble de bibliothèques robustes est l’une des raisons de son succès et de sa popularité : c’est ce qui le rend si dynamique et rapide.
1. Wget : comment télécharger un fichier depuis le Web en une ligne ?
Extraire des données, en particulier à partir du Web, est l’une des tâches essentielles du data scientist. La bibliothèque wget permet de télécharger un fichier depuis le Web en une ligne de code. Elle s’inspire de l’outil en ligne de commande GNU Wget, un utilitaire gratuit de téléchargement non interactif (HTTP, HTTPS, FTP, proxies HTTP) qui peut tourner en arrière-plan.
Ainsi, la prochaine fois que tu veux télécharger un fichier, wget sera là pour t’aider.
Remarque : le paquet wget n’a pas été mis à jour depuis 2015. Pour un usage actuel, la fonction urllib.request.urlretrieve de la bibliothèque standard ou la bibliothèque requests font le même travail.
Installation
# via pip
pip install wget
# via Anaconda
conda install -c conda-forge python-wgetExemple
import wget
url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
filename = wget.download(url)Python100% [................................................] 3841532 / 3841532filenamePython'razorback.mp3'2. Pendulum : comment simplifier les manipulations de dates en Python ?
Pendulum est là pour les personnes frustrées par les dates. C’est un paquet Python qui facilite les manipulations de dates et d’heures, et un remplacement direct de la classe datetime native de Python. Reporte-toi à la documentation pour plus de détails.
Installation
# via pip
pip install pendulum
# via Anaconda
conda install -c conda-forge pendulumExemple
import pendulum
dt_toronto = pendulum.datetime(2012, 1, 1, tz='America/Toronto')
dt_vancouver = pendulum.datetime(2012, 1, 1, tz='America/Vancouver')
print(dt_vancouver.diff(dt_toronto).in_hours())Python3Les deux dates sont à minuit en heure locale, mais Toronto a 3 heures d’avance sur Vancouver : le résultat est donc 3.
3. Imbalanced-learn : comment traiter un dataset déséquilibré ?
La plupart des algorithmes de classification fonctionnent mieux lorsque le nombre d’échantillons dans chaque classe est à peu près identique (on dit que le dataset est équilibré). Mais les cas réels sont remplis de datasets déséquilibrés, qui peuvent nuire à l’apprentissage et aux prédictions des algorithmes de machine learning.
La bibliothèque imbalanced-learn a été créée pour résoudre ce problème. Elle est compatible avec scikit-learn et fait partie des projets scikit-learn-contrib. Essaie-la la prochaine fois que tu rencontres un dataset déséquilibré.
Installation
# via pip
pip install -U imbalanced-learn
# via Anaconda
conda install -c conda-forge imbalanced-learnExemple
Pour l’appliquer et voir des exemples, reporte-toi à la documentation.
4. FlashText : comment remplacer ou extraire des milliers de mots-clés dans un texte ?
Nettoyer des données textuelles en traitement du langage naturel (NLP) nécessite souvent de remplacer ou d’extraire des mots-clés dans des phrases. On le fait généralement avec des expressions régulières, mais cela devient lourd quand le nombre de termes à rechercher atteint des milliers.
Le module FlashText, basé sur l’algorithme du même nom, offre une alternative intéressante pour ces situations. Son grand avantage : le temps d’exécution reste le même quel que soit le nombre de termes recherchés. Tu peux en savoir plus dans la documentation.
Remarque : le projet n’a pas reçu de mise à jour importante depuis 2018, mais les exemples ci-dessous fonctionnent toujours.
Installation
pip install flashtextExemples
Extraire des mots-clés :
from flashtext import KeywordProcessor
keyword_processor = KeywordProcessor()
# keyword_processor.add_keyword(<mot à nettoyer>, <mot standardisé>)
keyword_processor.add_keyword('Big Apple', 'New York')
keyword_processor.add_keyword('Bay Area')
keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')
keywords_foundPython['New York', 'Bay Area']Remplacer des mots-clés :
keyword_processor.add_keyword('New Delhi', 'NCR region')
new_sentence = keyword_processor.replace_keywords('I love Big Apple and new delhi.')
new_sentencePython'I love New York and NCR region.'Pour plus d’exemples, reporte-toi à la documentation.
5. TheFuzz (ex-FuzzyWuzzy) : comment comparer des chaînes de caractères approximativement ?
Le nom semble étrange, mais TheFuzz (anciennement FuzzyWuzzy) est une bibliothèque très utile pour la correspondance approximative de chaînes de caractères. Elle implémente facilement des opérations comme les ratios de comparaison de chaînes, les ratios de tokens, etc. Elle sert aussi à faire correspondre des enregistrements conservés dans différentes bases de données.
Pour de gros volumes de données, regarde aussi RapidFuzz, une alternative plus rapide proposant une API très proche.
Installation
# via pip
pip install thefuzz
# via Anaconda
conda install -c conda-forge thefuzzExemple
from thefuzz import fuzz
# Ratio simple
fuzz.ratio("Ceci est un test", "Ceci est un test!")Python97# Ratio partiel
fuzz.partial_ratio("Ceci est un test", "Ceci est un test!")Python100D’autres exemples sont disponibles dans le dépôt GitHub de TheFuzz.
6. PyFlux : peut-on encore l’utiliser pour les séries temporelles ?
L’analyse de séries chronologiques (time series) est l’un des problèmes les plus fréquents en machine learning. PyFlux est une bibliothèque open source en Python conçue explicitement pour ces problèmes. Elle propose une large gamme de modèles de séries temporelles modernes, notamment ARIMA, GARCH et VAR, avec une approche probabiliste de la modélisation.
Attention : PyFlux n’est plus maintenue et ne s’installe plus avec les versions récentes de Python et de NumPy (l’installation échoue). Elle reste intéressante pour comprendre l’approche, mais pour un projet actuel, privilégie statsmodels ou Prophet. Tu peux commencer par nos articles sur le modèle ARIMA avec Python et sur la prédiction de la qualité de l’air avec Prophet.
Installation
pip install pyfluxExemple
Réfère-toi à la documentation pour des usages et des exemples.
7. IPyvolume : comment visualiser des volumes 3D dans un notebook Jupyter ?
La communication des résultats est un aspect essentiel de la data science, et la visualisation apporte un avantage significatif. IPyvolume est une bibliothèque Python qui permet de visualiser des volumes et des glyphes 3D (par exemple des nuages de points 3D) dans un notebook Jupyter, avec une configuration et un effort minimes. Elle est encore en version 0.x (préliminaire).
Une bonne analogie : volshow d’IPyvolume est aux tableaux 3D ce que imshow de Matplotlib est aux tableaux 2D. Tu peux en savoir plus dans la documentation.
Installation
# via pip
pip install ipyvolume
# via Anaconda
conda install -c conda-forge ipyvolumeExemples
Animation :

Rendu de volume :

8. Dash : comment créer une application web de visualisation de données en Python ?
Dash est un framework Python productif pour construire des applications web. Il est écrit avec Flask, Plotly.js et React.js, et relie des éléments d’interface modernes (listes déroulantes, curseurs, graphiques) à ton code Python d’analyse, sans JavaScript.
Dash convient parfaitement à la création d’applications de visualisation de données affichées dans le navigateur. Consulte le guide d’utilisation pour plus de détails.
Installation
pip install dashLes anciennes versions de Dash demandaient d’installer séparément dash-html-components, dash-core-components et dash-table : ces composants sont désormais inclus dans le paquet dash.
Exemple
L’exemple suivant montre un graphique interactif avec une liste déroulante. Quand l’utilisateur sélectionne une valeur, le code de l’application récupère dynamiquement des données financières dans un DataFrame Pandas.
Dans la démo d’origine, les données venaient de Google Finance, dont l’API n’est plus disponible : il faut une autre source de données pour la reproduire.

9. Gymnasium (ex-Gym) : comment tester des algorithmes d’apprentissage par renforcement ?
Gymnasium (anciennement Gym d’OpenAI) est une boîte à outils pour développer et comparer des algorithmes d’apprentissage par renforcement. Gym a été créée par OpenAI, puis reprise et maintenue par la Farama Foundation sous le nom de Gymnasium (dépôt GitHub). Elle est compatible avec toutes les bibliothèques de calcul numérique, comme PyTorch ou TensorFlow.
Gymnasium est une collection de problèmes de test, appelés environnements, que tu peux utiliser pour élaborer tes algorithmes d’apprentissage par renforcement. Ces environnements ont une interface partagée, ce qui te permet d’écrire des algorithmes généraux.
Installation
# via pip
pip install gymnasium
# via Anaconda
conda install -c conda-forge gymnasiumExemple
Voici un exemple minimal avec l’environnement CartPole-v1, où l’agent joue des actions aléatoires. Retrouve les autres environnements dans la documentation de Gymnasium :
import gymnasium as gym
env = gym.make("CartPole-v1")
observation, info = env.reset(seed=42)
for _ in range(100):
action = env.action_space.sample() # action aléatoire
observation, reward, terminated, truncated, info = env.step(action)
if terminated or truncated:
observation, info = env.reset()
env.close()PythonPour pratiquer ces bibliothèques en écrivant du code, le parcours Python de DataXp te fait pratiquer sur des exercices corrigés, avec un coach IA qui t’aide quand tu bloques. Les premiers modules sont gratuits.
Questions fréquentes sur les bibliothèques Python de data science peu communes
Que faire avec un dataset déséquilibré en machine learning ?
La plupart des algorithmes de classification fonctionnent mieux quand chaque classe a à peu près le même nombre d’échantillons. La bibliothèque imbalanced-learn a été créée pour ce problème : elle est compatible avec scikit-learn et fait partie des projets scikit-learn-contrib.
Quelle bibliothèque Python utiliser pour comparer des chaînes de caractères approximativement ?
TheFuzz, anciennement FuzzyWuzzy, calcule des ratios de comparaison de chaînes et de tokens et permet de faire correspondre des enregistrements de différentes bases de données. Pour de gros volumes de données, RapidFuzz propose une API très proche, en plus rapide.
Quand utiliser FlashText plutôt que des expressions régulières ?
Quand tu dois remplacer ou extraire des milliers de mots-clés dans un texte. Avec les expressions régulières, cela devient lourd, alors que le temps d’exécution de FlashText reste le même quel que soit le nombre de termes recherchés.
PyFlux est-elle encore utilisable pour les séries temporelles ?
Non. PyFlux n’est plus maintenue et ne s’installe plus avec les versions récentes de Python et de NumPy. Pour un projet actuel, privilégie statsmodels ou Prophet.
Quelle est la différence entre Gym et Gymnasium ?
Gym a été créée par OpenAI, puis reprise et maintenue par la Farama Foundation sous le nom de Gymnasium. C’est une boîte à outils pour développer et comparer des algorithmes d’apprentissage par renforcement, avec des environnements à interface partagée comme CartPole-v1.
Que retenir de ces bibliothèques Python ?
Voici mes choix de bibliothèques Python utiles mais peu connues pour la data science.
Pour aller plus loin avec Python, consulte aussi notre guide des 21 astuces et concepts Python pour améliorer ton code.












