Python : bibliothèques et modules
Si vous vous intéressez à Python, vous avez probablement entendu parler de bibliothèque, de module, voire de paquet.
Ces outils sont ce qui fait la puissance de Python : on utilise des briques fiables qui ont été testées, optimisées, adoptées par la communauté.
Réjouissez-vous, nous allons ici passer en revue les bibliothèques majeures, avec un focus particulier sur l’analyse de données (mais pas seulement). Auparavant, nous verrons comment les charger.
Modules et bibliothèques
D’abord, un peu de vocabulaire. Un module est un fichier Python (avec l’extension .py) qui contient du code réutilisable : des fonctions, des classes, des variables, etc. Exemples : math, random, csv.
On peut aussi créer notre propre module. Le plus simple consiste à enregistrer une fonction dans un fichier.
Une bibliothèque est un ensemble thématique de modules. Il est habituel de considérer le terme package comme un synonyme de bibliothèque. Mais au sens technique, c’est un dossier qui contient plusieurs modules, plus un fichier spécial nommé _init_.py.
Importation
Pour utiliser un module ou une bibliothèque, il faut le rendre disponible dans le programme que l'on écrit. C’est le rôle de l’instruction import.

Cette instruction permet aussi de n’importer qu’une fonction du module ou de la bibliothèque.
C’est la première étape pour les modules qui font partie de la bibliothèque standard de Python : math, csv, os, jason, datetime…
Mais pour les nombreux autres, il faut préalablement passer par une installation. On le fait avec pip install.
Notez que si vous utilisez un environnement intégré, une interface graphique peut vous simplifier la tâche. Par exemple, avec le menu Paramètres de Pycharm, cliquez sur Files puis Settings puis Project puis Python Interpreter. La liste des bibliothèques installées apparaît et la façon d’en ajouter une est très intuitive. Notez aussi qu’il existe d’autres voies pour que Pycharm installe une bibliothèque, notamment par le terminal, à l’instar de VS Code et de Jupyter Notebook. Avec VS Code, allez dans le terminal (fenêtre du bas) et, s’il est en mode interpréteur (avec >>>), sortez-en en tapant exit().
Bref, revenons à l’importation.
Prenons un exemple : on souhaite utiliser la fonction read_csv de la bibliothèque pandas.
import pandas
df = pandas.read_csv("chiens.csv")
On peut utiliser un alias (c’est un peu comme un surnom). En l’occurrence, nous souhaitons abréger pandas en pd.
import pandas as pd
df = pd.read_csv("chiens.csv")
On peut aussi n’importer que la fonction qui nous intéresse.
from pandas import read_csv
df = read_csv("chiens.csv")
Attention à l’ordre, ne pas écrire import … from !
On peut aussi importer tout ce que contient la bibliothèque :
from pandas import *
df = read_csv("chiens.csv") # pas besoin de pd.
Cette option n’est pas à privilégier. Elle charge des centaines de fonctions dans l’espace de travail, ce qui peut nuire à la performance mais surtout à la lisibilité du code si plusieurs bibliothèques sont importées pour concevoir le programme. De plus, les éditeurs comme PyCharm ou VSCode ont alors du mal à détecter certaines erreurs. Exemple en page de loi des grands nombres.
Quelques bibliothèques
Nous nous intéresserons surtout à l’analyse des données avant d’élargir notre panorama à d’autres domaines (précision : parfois des majuscules, parfois des minuscules... Ce n'est pas une erreur de notre part !).
- NumPy est souvent considérée comme la fondation de l’écosystème Python pour l’analyse numérique. Elle fournit des tableaux multidimensionnels (les ndarray), des opérations vectorisées (travailler par blocs plutôt qu’élément par élément), des fonctions mathématiques rapides… Si vous travaillez avec des données numériques, des matrices, des vecteurs, NumPy est incontournable. Beaucoup de bibliothèques de plus haut niveau reposent sur elle. https://numpy.org
- pandas est sans doute la bibliothèque la plus citée quand on parle d’analyse de données tabulaires. Elle offre les structures Series (une dimension) et DataFrame (tableau 2D comme une feuille de calcul ou une table SQL), ainsi que tout un ensemble d’outils pour lire et écrire des fichiers CSV, Excel, JSON, interagir avec des bases de données, traiter des valeurs manquantes, filtrer, agréger, etc. pandas utilise NumPy, ce qui garantit une bonne interopérabilité. https://pandas.pydata.org
- Polars est une bibliothèque plus récente, orientée performance, pour la manipulation de données tabulaires. Elle peut être une alternative à pandas pour le big data. https://pola.rs
- Matplotlib est une bibliothèque de visualisation « classique » (graphes, histogrammes, courbes, etc.). Elle est très flexible et permet de créer des visuels personnalisés, mais à force de flexibilité elle demande parfois plus de code. https://matplotlib.org
- Seaborn est une bibliothèque construite sur Matplotlib. Elle offre une interface de plus haut-niveau et, par défaut, des présentations plus « propres » (graphiques plus beaux, statistiques visuelles, heatmaps, etc.). https://seaborn.pydata.org
- SciPy est une bibliothèque complémentaire à NumPy. Elle ajoute des fonctions d’algèbre linéaire avancée, d’optimisation, d’intégration, de statistiques, etc. Elle peut donc servir pour établir des tests statistiques, des transformations complexes... https://scipy.org
- Statsmodels est une bibliothèque pour l’analyse statistique : elle permet de construire des modèles (régression, séries temporelles, tests d’hypothèses…) de façon plus “classique”. https://www.statsmodels.org
Survolons d’autres types d’utilisation.
- Web scraping : Request sert à récupérer une page web tandis que Beautiful Soup sert à analyser et à extraire ce qu’il y a dedans. On les utilise souvent ensemble.
- Deep learning : scikit-learn, TensorFlow, PyTorch…
- Big data : Dask, Vaex…
- Traitement d’image : scikit-image, OpenCV, Pillow… Exemple d’utilisation de Pillow en page de niveaux de gris avec Python.
- Interface : des bibliothèques permettent de rendre attrayante l’interface avec l’utilisateur. Tkinter fait partie de la bibliothèque standard : création de boutons, de fenêtres, de menus… Mais l’effet est assez rudimentaire. Qt (prononcez kioute) est un framework d’interface graphique et d’applications multiplateformes, développé en C++. Avec Python, il est accessible par une interface (PyQt ou PySide). On peut par exemple appliquer des feuilles de style Qt (QSS) pour personnaliser l’apparence, comme le CSS le fait pour le web.
Le site qui recense toutes les bibliothèques installables par pip : https://pypi.org.
