Image de couverture du post

Qu’est-ce que Jupyter et pourquoi est-il un outil incontournable ?

Si vous êtes un data scientist, il est fort probable que vous ayez déjà entendu parler des notebooks Jupyter et il y a aussi de fortes chances que vous vous en serviez au quotidien !

Le notebook est un outil de travail devenu très populaire dans les milieux académique et scientifique pour pouvoir facilement travailler sur du code encore au stade de prototype. Il existe plusieurs systèmes de notebooks, Jupyter est le plus répandu d’entre eux dans le monde de la data science (et au-delà probablement). Mais saviez-vous que la première version de cet outil a été lancée en 2015 ? Cela veut dire qu’en 5 ans, cet outil s’est imposé comme un incontournable dans la boîte à outils du data scientist ! 

Évolution de Google Trend pour les termes « science des données » en rouge et « projet Jupyter » en bleu pour illustrer la connexion qu’il existe entre ce domaine et cet outil
Évolution de Google Trend pour les termes « science des données » en rouge et « projet Jupyter » en bleu pour illustrer la connexion qu’il existe entre ce domaine et cet outil

Pour l’histoire, le nom « Jupyter » est un clin d’œil à la planète du même nom et plus largement au domaine scientifique, mais c’est surtout la contraction de Julia, Python et R, trois langages très utilisés dans ce domaine. Cet article présente les points forts de Jupyter qui lui ont permis de devenir si populaire.

Comment fonctionne un notebook Jupyter ?

En détaillant le fonctionnement global d’un notebook, on va déjà voir apparaître plusieurs raisons qui ont rendu cet outil si populaire.

La structure de Jupyter se compose de 3 éléments principaux :

  • le notebook à proprement parler, qui est un fichier avec une extension .ipynb. Ce fichier contient votre code ainsi que l’output généré par ce code lors de son exécution ;
  • une application web, qui est chargée d’afficher les notebooks et permet à l’utilisateur d’interagir avec ;
  • un kernel, chargé d’exécuter le code contenu dans le notebook. Il peut s’agir d’un kernel Python, R…, en fonction du langage que vous utilisez dans votre notebook.

Tout d’abord, creusons un peu plus les spécificités des notebooks :

  • ils sont souvent compatibles d’un système de notebook à un autre. Donc vous pouvez lire et modifier un notebook Jupyter sous Google Colab (un autre système de notebook made in Google) et vice-versa ;
  • comme dit précédemment, le notebook contient les résultats d’exécution. Ça paraît simple, mais en réalité, c’est extrêmement pratique ! Cela veut dire que vous n’avez pas à envoyer votre code et vos résultats dans deux fichiers séparés (et tout ce que cela implique de confusions entre différentes versions de fichiers ou bien pour savoir quelle partie du code est responsable de quel résultat).

Ces deux raisons font des notebooks un support de travail idéal pour facilement échanger et partager votre travail, qu’il s’agisse d’une analyse de données ou bien d’une proposition d’architecture de réseau de neurones.

Un seul support de travail pour vos langages, où que vous soyez

L’interface de Jupyter est basée sur une application web, c’est-à-dire que vous y accédez grâce à votre navigateur web. Une application web offre beaucoup de flexibilité en termes de déploiement, vous pouvez l’exécuter en local ou bien la déployer sur un serveur distant. 

Dans ce dernier cas, vous pouvez déployer un service Jupyter pour donner accès à cet outil à tous les membres d’une équipe tout en centralisant le software et le travail réalisé. C’est justement le but de l’initiative Jupyter Hub ; il existe aussi des solutions dédiées chez les principaux fournisseurs de services Cloud.

Et peu importe si votre équipe préfère travailler avec Python, R, Julia ou l’un des 40 langages de programmation actuellement supportés par Jupyter. En effet, pour commencer à coder avec un nouveau langage dans Jupyter, il suffit d’installer le kernel d’exécution correspondant à ce langage et le tour est joué.

C’est aussi simple que ça, car oui, les notebooks sont avant tout un support de travail et ne dépendent pas du langage utilisé. On en vient au vrai point fort des notebooks et leur raison d’exister : leur ergonomie !

Une interface idéale pour expérimenter et itérer

On garde évidemment le meilleur pour la fin !

Très simplement, un notebook est un document composé d’un enchaînement de blocs, chaque bloc étant constitué de deux parties :

  • une case modifiable dans laquelle vous écrivez votre code ;
  • sous cette case se trouve une zone de résultat où s’affiche l’output généré par l’exécution du code.

Et tous les blocs d’un notebook partagent le même contexte, c’est-à-dire que si vous déclarez une variable dans un bloc, vous pouvez la réutiliser dans un autre bloc. Cette organisation est terriblement confortable à utiliser lorsque vous êtes dans la phase exploratoire d’un projet et que vous expérimentez, testez, corrigez, revenez en arrière… sans savoir exactement quelle structure aura votre code final. 

Tout d’abord vous n’avez plus à jongler entre votre éditeur de texte et votre console, le code et les résultats sont au même endroit. D’autre part, il devient très facile avec un notebook de fragmenter votre code pour n’en exécuter qu’une partie précise sur laquelle vous souhaitez faire des ajustements ou des essais. Enfin, il est clair que l’équipe derrière Jupyter a fourni beaucoup d’efforts dans le design et l’ergonomie de cet outil, très agréable à utiliser au quotidien et s’enrichissant de jour en jour. La liste des raisons jouant en la faveur de Jupyter risque de s’allonger encore dans les années à venir !

Cet article est le premier d’une petite série dédiée à Jupyter Notebook. Dans les prochains articles, nous vous partagerons nos conseils et astuces pour exploiter au maximum le potentiel de vos notebooks. 

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Leave a Comment

Read our latest blog posts