Les notebooks Jupyter sont devenus l’outil de prédilection des meilleurs data scientists, des ingénieurs Machine Learning, et des développeurs Python (tout le monde quoi !) !
L’une des forces de Jupyter c’est qu’il fournit un environnement interactif dans lequel les utilisateurs peuvent intégrer du code, du texte et des visualisations (tous ensemble). Cependant, la plupart des utilisateurs ne connaissent que les fonctionnalités de base de Jupyter Notebook (et encore pas toujours) et ne découvrent que rarement les joyaux cachés qui peuvent faire la différence et faire gagner un temps précieux.
Dans cet article, je te partage quelques fonctionnalités moins connues pour t’aider à libérer le vrai pouvoir de Jupyter Notebook lorsque tu travailles sur tes projets de Data Science et Machine Learning.
1. Commandes magiques – raccourcis pour gagner du temps
Il s’agit d’une collection de commandes magiques intégrées à utiliser dans les notebooks Jupyter pour une exécution plus efficace du code. Les commandes magiques peuvent être identifiées par le fait qu’elles commencent par % pour les commandes magiques de ligne ou %% s’il s’agit de commandes magiques de cellule. Elles simplifient grandement l’exécution de commandes shell, l’analyse comparative de ton code, ou même la gestion de la mémoire.
Exemple :
%timeit sum(range(100000))
Il s’agit de la commande la plus simple que tu puisses exécuter pour obtenir une vue d’ensemble de la performance de ton code et elle te fera gagner des heures, voire des jours.
2. Widgets interactifs : améliorer l’expérience de l’utilisateur
IpyWidgets – Une extension Jupyter Notebook pour construire des fonctionnalités interactives telles que des curseurs, des listes déroulantes ou des boutons dans le notebook, côte à côte. De tels widgets sont très pratiques dans les cas d’analyse et de visualisation de données exploratoires où tu auras souvent besoin d’ajuster certains paramètres à la volée.
Exemple :
from Ipywidgets, import interact def square(x): return x * x interact(square, x=(0, 10));
Dans l’exemple, interact() crée un curseur interactif qui rend la sortie dynamique lorsque tu modifies sa valeur. Cela te permet de créer des tableaux de bord interactifs ou des outils de réglage des paramètres, améliorant ainsi considérablement l’expérience de l’utilisateur.
3. (Re)chargement automatique : rester à jour avec les modules de bibliothèque
Si tu développes d’autres projets à long terme, les mises à jour des modules Python sont fréquentes. La magie %autoreload rechargera automatiquement les modules avant d’exécuter une nouvelle ligne, ce qui signifie que tu utiliseras toujours la dernière version de ton code.
Comment l’utiliser :
%load_ext autoreload %autoreload 2
Cela signifie que chaque fois que tu fais un changement dans ton fichier .py, il sera automatiquement reflété dans le notebook (pas besoin de redémarrer le Kernel).
4. Documentation sans quitter son notebook
L’une des meilleures fonctionnalités des notebooks Jupyter est la possibilité d’accéder à la documentation directement à partir de ceux-ci. En ajoutant ? ou ??.
De cette façon, si tu travailles avec une fonction ou un objet et que tu as besoin de voir sa documentation ou son code source, tu peux le faire sans quitter ton notebook.
Exemple :
print?
Cette commande affiche la documentation de la fonction print(). Si tu ajoutes ??, tu obtiendras le code source de la fonction signifie qu’il s’agit d’une méthode par défaut qui implémente un comportement spécifique et comment elle fonctionne.
5. Développer et réduire les titres – mieux s’adapter à l’organisation intelligente
Il devient très vite confus s’il y a trop de blocs de code et de cellules markdown dans un énorme notebook. Titres rétractables : Cela te donne un autre niveau pour permettre un pipeline d’optimisation plus optimisé en étant capable de cacher tout ce qui n’est pas nécessaire pour le moment mais qui reste visible.
Pour les titres rétractables, tu dois installer le paquet nbextensions :
pip install jupyter-contrib-nbextensions
L’extension Collapsible Headings peut être activée à partir de l’interface Jupyter, donc si tu as déjà installé cette extension, c’est le moment de l’activer. Cette fonctionnalité est relativement simple mais elle aide à la lisibilité et à la navigation dans les longs notebooks.
6. Utiliser nbconvert : exporter les notebooks dans d’autres formats
Si tu souhaites produire ton notebook sous la forme d’un rapport ou d’un blog, tu peux utiliser nbconvert de Jupyter, qui permet de convertir les notebooks dans plusieurs formats, notamment HTML, PDF et LaTeX.
jupyter nbconvert --to html notebook.ipynb
Cette série de commandes convertira ensuite ton notebook en un fichier HTML que tu pourras partager avec des parties prenantes non techniques ou même publier en ligne.
7. Inspecteur de variables (visualisation de toutes les variables en un coup d’œil)
Cela peut être compliqué à gérer, en particulier dans les notebooks longs et complexes. L’extension Variable Inspector nous permet de voir toutes les variables en cours d’exécution : type, taille et valeur dans un affichage popup propre.
Tu peux le faire via l’interface Jupyter, mais assure-toi d’installer nbextensions et d’activer Variable Inspector.
8. Jupyter Lab en tant qu’environement pour experimenté
JupyterLab est l’environnement de programmation de nouvelle génération pour Jupyter, et il inclut un support intégré pour les anciens noyaux. Il offre une expérience utilisateur améliorée, plus flexible et plus puissante ; les fonctionnalités incluses sont les volets multiples, les onglets pour les vues au sein de la même liste de nœuds de ton espace de travail, un meilleur support pour gérer les fichiers, etc.
Tu peux ouvrir plusieurs notebooks, terminaux et fichiers texte côte à côte, ce qui représente un gain de temps pour les utilisateurs multitâches.
9. Exécuter des commandes de terminal dans les notebooks
Les commandes simples de l’interpréteur de commandes ne nécessitent pas d’aller et venir avec le terminal. En faisant précéder la commande d’un point d’exclamation ( ! ).
Exemple :
!pip install pandas
C’est très pratique si tu veux installer ou mettre à jour rapidement un paquet, ou même passer d’un répertoire à l’autre sans quitter ton notebook.
10. Débogage avec %debug
Si ce code se trouve dans un cahier, la commande magique %debug te permet de passer en mode de débogage interactif. %debug te fera entrer dans le débogueur à l’endroit où une erreur a été lancée.
Comment l’utiliser :
%debug
Tu obtiendras ainsi un shell interactif dans lequel tu pourras vérifier les valeurs des variables, ligne par ligne dans le code, et voir exactement ce qui n’a pas fonctionné.
Conclusion
Il y a des choses que tu peux faire dans les Notebooks Jupyter pour gagner du temps et rationaliser ton flux de travail. En utilisant des commandes magiques, des widgets interactifs et des fonctionnalités cachées telles que %autoreload, tu peux transformer tes notebooks de simples environnements de codage en outils de développement puissants.
L’apprentissage de ces fonctionnalités cachées te permettra non seulement d’augmenter ta productivité quotidienne, mais aussi d’amener ton projet de Data Science à un niveau supérieur. Ces conseils et astuces sont valables que tu sois étudiant, que tu sois déjà Data Scientist confirmé ou que tu réalises un gros modèle de Machine Learning.
Maintenant que tu connais ces éléments cachés dans Jupyter, amuse-toi à les utiliser lors de ton prochain projet et observe comment ils peuvent améliorer ton flux de travail.
Dans les commentaires ci-dessous, dis-moi quelles fonctionnalités tu trouves utiles !