Jupyter Notebook : documents Web pour l’analyse de données, live-coding, etc.

Dans de nombreux secteurs, un bon travail en équipe est devenu un impératif vital. C’est pourquoi les outils de communication, d’organisation et de contrôle des versions pour les étapes de travail et les données des projets en cours sont devenus pratiquement incontournables. Il existe dans le domaine de la science des données et de la simulation différentes applications qui essaient de répondre à ces besoins. C’est ainsi par exemple que la solution Internet Jupyter Notebook assure une continuité parfaite entre codes de programmation et textes explicatifs, permettant ainsi à ses utilisateurs de créer et d’échanger en temps réel du code, des équations, des visualisations, etc., et de les accompagner d’explications. Qu’y a-t-il derrière l’application open source développée et maintenue dans le cadre du projet Jupyter ?

Qu’est-ce que Jupyter Notebook ?

Jupyter Notebook est une application client-serveur créée par l’organisation à but non lucratif Project Jupyter. Elle a été publiée en 2015. Elle permet la création et le partage de documents Web au format JSON constitués d’une liste ordonnée de cellules d’entrées et de sorties et organisés en fonction des versions successives du document. Les cellules peuvent contenir, entre autres, du code, du texte au format Markdown, des formules mathématiques ou des contenus médias (Rich Media). Le traitement se fait avec une application client fonctionnant par Internet, à laquelle on accède par les navigateurs habituels. Il est nécessaire pour cela que soit installé et activé dans le système le serveur Jupyter Notebook. Les documents Jupyter créés peuvent s’exporter aux formats HTML, PDF, Markdown ou Python par exemple, ou bien se partager par email, avec Dropbox, GitHub ou un lecteur Jupyter Notebook.

Note

Le nom du projet, « Jupyter », rassemble les noms de ses trois principaux langages de programmation : Julia, Python et R.

Les deux éléments principaux de Jupyter Notebook sont un jeu de différents noyaux (interpréteurs) et le tableau de bord (dashboard). Les noyaux sont des petits programmes qui traitent des requêtes dans un langage particulier et qui réagissent avec les réponses correspondantes. Le noyau standard est l’IPython, un interprétateur de lignes de commande, qui permet de travailler avec Python. On trouve en plus une bonne cinquantaine d’autres noyaux qui permettent l’utilisation d’autres langages, comme C++, R, Julia, Ruby, JavaScript, CoffeeScript, PHP ou Java. Le tableau de bord sert d’une part d’interface de gestion des différents noyaux, et d’autre part de centrale pour la création de nouveaux documents Notebook, ou pour ouvrir des documents existants. Jupyter Notebook est disponible sous licence BSD modifiée et donc librement utilisable par tous.

Quelle est la différence entre Jupyter Notebook, JupyterHub et JupyterLab ?

Jupyter Notebook n’est pas le seul produit open source que propose le projet Jupyter : JupyterHub et JupyterLab sont les deux autres services étroitement associés à l’environnement du code interactif que propose l’équipe de développement.

JupyterHub est un serveur multi-utilisateur avec proxy qui permet de connecter plusieurs instances Jupyter-Notebook. Ce serveur peut s’héberger soit dans le Cloud soit dans son propre matériel, et permet de partager l’usage d’un environnement Notebook commun. L’administrateur du serveur gère l’accès commun aux documents ouverts selon les besoins (il est possible de mettre en œuvre une méthode d’authentification), tout en laissant chaque utilisateur se concentrer entièrement sur sa propre tâche. On trouvera des informations détaillées sur l’installation et l’hébergement d’un JupyterHub dans l’annuaire GitHub de la solutions multi-utilisateur.

JupyterLab est le successeur officiel de Jupyter Notebook, et doit à long terme remplacer le programme de base. JupyterLab propose en effet plus d’options de réglage et autorise plus d’interactivité, tout en étant plus facile à développer. C’est ainsi que son interface utilisateur, qui a été entièrement remaniée, ne permet pas seulement d’ouvrir et d’afficher des éditeurs de textes, des terminaux et d’autres éléments parallèlement à des documents Notebook, mais permet d’avoir des connexions à Google Drive et autres services dans le nuage, des commandes de menus supplémentaires ou bien des raccourcis clavier, ce qui rend le travail avec l’environnement du code encore plus facile.

À quoi peut servir Jupyter Notebook ?

Jupyter Notebook met à disposition un environnement qui répond parfaitement aux exigences et au flux de travail dans le domaine de la science des données et de la simulation. Une seule et unique instance permet à l’utilisateur d’écrire du code, de l’accompagner d’explications et de l’exécuter, mais aussi de visualiser des données, d’exécuter des calculs et de vérifier les résultats obtenus. C’est en particulier à l’étape du prototype qu’on apprécie la possibilité offerte de loger tous les codes dans des cellules indépendantes, ce qui permet de tester individuellement des blocs de code particuliers. Grâce à de nombreux noyaux complémentaires, Jupyter n’est pas limité à Python comme langage de programmation, ce qui procure une énorme flexibilité de codage et d’analyse.

Voici quelques-uns des principaux usages qu’on peut faire de Jupyter Notebook :

  • Nettoyage des données : faire le tri entre les données importantes et celles qui ne le sont pas dans l’analyse des ensembles de mégadonnées
  • Modélisation statistique : méthode mathématique permettant d’établir la probabilité de répartition d’une caractéristique particulière
  • Création et mise en œuvre de modèles d’apprentissage automatique : étude, programmation et apprentissage de modèles
  • Visualisation de données : représentation graphique de données pour faire apparaître des structures, des tendances, des relations, etc.

Comment utiliser Jupyter Notebook ?

Pour utiliser Jupyter Notebook il faut d’abord installer, dans son système ou dans le Cloud, l’application client et serveur de l’environnement du code. La seule condition est qu’il soit également installé une version valide de Python. C’est pourquoi l’équipe Jupyter recommande de télécharger la distribution Anaconda, qui contient aussi bien Jupyter Notebook et Python que divers autres ensembles logiciels pour la science des données, le calcul scientifique, etc. Une fois l’installation réalisée, on peut lancer le serveur Notebook par la ligne de commande, puis ouvrir le tableau de bord dans le navigateur qu’on utilise (URL 'http ://localhost :8888').

C’est là qu’on crée de nouveaux dossiers dans le répertoire de Jupyter-Notebook, qu’on ouvre l’éditeur de texte intégré et le terminal, ou bien qu’on lance un nouveau projet Jupyter. Chaque nouveau projet créé ne contient d’abord qu’un seul champ de saisie vide. On peut avec la barre des menus ajouter de nouveaux champs, importer des bibliothèques ou incorporer des utilitaires (éléments interactifs). La barre de menus comprend en plus des commandes permettant d’exécuter des codes et de les arrêter, d’enregistrer ou d’exporter l’ensemble du document, ainsi que de choisir le noyau de base.

Conseil

Il est possible, à partir de la page d’accueil du site officiel du projet Jupyter, d’essayer Jupyter Notebook sans l’installer.

Les avantages de Jupyter Notebook

Quiconque veut écrire des scripts et les tester en temps réel, visualiser des données ou réaliser des calculs mathématiques complexes trouvera dans Jupyter Notebook une solution de premier rang. Les résultats peuvent s’exporter dans différents formats en quelques clics ou s’envoyer directement par email. Les utilisateurs du JupyterHub multi-utilisateur peuvent même travailler ensemble sur des documents Notebook, permettant ainsi un travail en équipe optimisé. Étant donné que Jupyter est écrit en langage Python, les spécialistes de ce dernier sont certes avantagés dans l’utilisation de cette application à code source ouvert, mais il existe quantité d’interpréteurs prêts à l’usage pour d’autres langages, et on peut par conséquent parfaitement coder avec d’autres grands langages comme C++, PHP ou Java.

Récapitulatif des avantages de Jupyter Notebook :

  • open source (licence BSD modifiée)
  • usage gratuit
  • s’utilise à partir d’un navigateur
  • live-coding
  • variété d’options d’export et de partage des résultats
  • gestion des versions
  • possibilité de travail collaboratif (JupyterHub)
  • permet d’utiliser plus de 50 langages de programmation.
Cet article vous a-t-il été utile ?
Page top