Notebook Jupyter: documenti web per analisi di dati, livecode e molto altro
Un regolare processo lavorativo in team è d’importanza fondamentale in molti settori. I tool di comunicazione e per l’organizzazione e la gestione delle fasi lavorative e dei dati di progetto sono diventati praticamente indispensabili. Esistono diverse applicazioni per la scienza e la simulazione dei dati che cercano di soddisfare queste esigenze. La soluzione basata sul web di Notebook Jupyter crea ad esempio un continuo ponte tra codice di programma e testo esplicativo, consentendo all’utente di scambiare e creare in tempo reale codici, equazioni, visualizzazioni ecc., incluse le informazioni esplicative. Cosa c’è dietro all’applicazione open source sviluppata e gestita dal Progetto Jupyter?
Che cos’è Notebook Jupyter?
Notebook Jupyter è un’applicazione basata sul modello client-server dell’organizzazione no profit Progetto Jupyter fondata nel 2015. Permette la creazione e la condivisione di documenti web nel formato JSON, che seguono uno schema e una lista ordinata di celle input/output. Queste celle offrono tra l’altro spazio per codici, testi in markdown, formule matematiche ed equazioni o contenuti multimediali (rich media).
L’elaborazione funziona su un’applicazione client basata sul web che si avvia con un browser standard. Basta che sul sistema sia installato e venga eseguito anche il server del Notebook Jupyter. I documenti Jupyter creati si possono esportare come documenti HTML, PDF, Markdown o Python o in alternativa si possono condividere con altri utenti tramite e-mail, Dropbox, GitHub o il proprio Notebook Jupyter.
L’elaborazione funziona su un’applicazione client basata sul web che si avvia con un browser standard. Basta che sul sistema sia installato e venga eseguito anche il server del Notebook Jupyter. I documenti Jupyter creati si possono esportare come documenti HTML, PDF, Markdown o Python o in alternativa si possono condividere con altri utenti tramite e-mail, Dropbox, GitHub o il proprio Notebook Jupyter.
Il nome del progetto “Jupyter” deriva dai tre linguaggi di programmazione di base, Julia, Python e R.
I due componenti centrali di Notebook Jupyter sono un set di diversi kernel (interpreti) e la dashboard. I kernel sono piccoli programmi che elaborano richieste (“request”) specifiche nel linguaggio e reagiscono con relative risposte. Un kernel standard è IPython, un interprete della riga di comando che permette di lavorare con Python. Oltre 50 kernel forniscono supporto per altri linguaggi come C++, R, Julia, Ruby, JavaScript, CoffeeScript, PHP o Java. La dashboard serve da una parte come interfaccia di gestione per i singoli kernel e dall’altra come centrale per la creazione di nuovi documenti Notebook o per aprire progetti già esistenti. Notebook Jupyter è disponibile gratuitamente per tutti gli utenti grazie a una licenza BSD modificata.
Come si differenzia Notebook Jupyter da JupyterHub e JupyterLab?
Notebook Jupyter non è l’unica offerta open source del Progetto Jupyter: con JupyterHub e JupyterLab il team di sviluppo offre altri due servizi strettamente connessi all’ambiente del codice interattivo.
JupyterHub è un server multiutente che include un proxy, il quale collega tra loro diverse istanze di Notebook Jupyter. Esso può essere ospitato nel cloud o sul proprio hardware e permette l’utilizzo di un ambiente Notebook comune. L’amministratore del server gestisce a piacimento l’accesso comune ai singoli documenti (è implementabile un metodo di autenticazione), mentre i singoli utenti si possono concentrare sui propri compiti. Informazioni dettagliate sull’installazione e l’hosting di JupyterHub sono offerte dal Repository di GitHub della soluzione multiutente.
JupyterHub è un server multiutente che include un proxy, il quale collega tra loro diverse istanze di Notebook Jupyter. Esso può essere ospitato nel cloud o sul proprio hardware e permette l’utilizzo di un ambiente Notebook comune. L’amministratore del server gestisce a piacimento l’accesso comune ai singoli documenti (è implementabile un metodo di autenticazione), mentre i singoli utenti si possono concentrare sui propri compiti. Informazioni dettagliate sull’installazione e l’hosting di JupyterHub sono offerte dal Repository di GitHub della soluzione multiutente.
JupyterLab è il successore ufficiale di Notebook Jupyter. Esso dovrebbe sostituire il programma di base nel lungo termine. In confronto a quest’ultimo JupyterLab offre infatti più opzioni per la personalizzazione e l’interazione ed è ancora più semplice da ampliare. Oltre a editor di testo, terminali e altri componenti che si aprono e vengono visualizzati in parallelo con i documenti di Notebook, l’interfaccia utente completamente ridisegnata include anche collegamenti a Google Drive e ad altri servizi cloud, voci di menu aggiuntive e scorciatoie da tastiera per lavorare con l’ambiente di codice in modo ancora più agevole.
Per quali scopi è adatto Notebook Jupyter?
Notebook Jupyter mette a disposizione un ambiente perfetto fatto su misura per le esigenze e il flusso di lavoro di scienza e simulazione dei dati. In una sola istanza gli utenti possono scrivere, documentare ed eseguire codici, visualizzare dati, eseguire calcoli ed esaminare i risultati corrispondenti. In particolare durante la fase di prototipo possono trarre beneficio dal fatto che ciascun codice può essere ospitato in celle indipendenti: così è possibile testare individualmente specifici blocchi di codici. Grazie ai numerosi kernel aggiuntivi Jupyter non si limita a Python per quanto riguarda il linguaggio di programmazione e ciò significa più flessibilità al momento della codifica e dell’analisi.
Tra gli scopi d’utilizzo più importanti di Notebook Jupyter si possono menzionare:
Tra gli scopi d’utilizzo più importanti di Notebook Jupyter si possono menzionare:
- Pulizia dei dati: differenziazione tra dati importanti e meno importanti nell’analisi dei big data
- Modellizzazione statistica: metodo matematico per determinare la stimata probabilità di distribuzione di una determinata caratteristica
- Creazione e training di modelli di machine learning: progetto, programmazione e training di modelli basati sul machine learning
- Visualizzazione dati: rappresentazione grafica di dati per spiegare modelli, tendenze, dipendenze ecc.
Come funziona Notebook Jupyter?
Per utilizzare Notebook Jupyter occorre innanzitutto installare l’applicazione client e server dall’ambiente di codice sul proprio sistema (o in alternativa nel cloud). L’unica condizione è che sia installata anche una versione attuale di Python. È per questo motivo che il team di Jupyter consiglia il download della Anaconda Distribution, che include sia Notebook Jupyter che Python, nonché altri pacchetti software per la scienza dei dati, il calcolo scientifico e altro. Al termine dell’installazione il server Notebook si avvia tramite la riga di comando e successivamente viene richiamato dalla dashboard nel browser scelto tramite l’URL 'http://localhost:8888'.
A questo punto l’utente crea una nuova cartella nella directory di Notebook Jupyter, apre l’editor di testo integrato e il terminale o crea un nuovo progetto Jupyter. Ogni nuovo progetto creato contiene inizialmente un unico campo di input vuoto. Sulla barra del menu si possono inserire nuovi campi, si possono importare biblioteche o collocare widget (elementi interattivi). Inoltre la barra offre tasti per l’esecuzione e l’interruzione di codici finiti, per salvare o esportare l’intero documento e per scegliere il kernel di base.
Sulla homepage ufficiale di Jupyter c’è la possibilità di testare Notebook Jupyter senza installarlo.
Riassunto dei vantaggi di Notebook Jupyter
Notebook Jupyter è la soluzione ideale per chi vuole scrivere script e testarli in tempo reale, visualizzare dati o fare complessi calcoli matematici. I risultati si possono esportare con pochi clic in diversi formati o essere inviati direttamente per e-mail. Gli utenti dei servizi multiutente di JupyterHub possono lavorare addirittura insieme ai “Notebook” per poter portare avanti il progetto in team. Dato che Jupyter è scritto in Python, gli specialisti di Python hanno anche un ulteriore vantaggio nell’utilizzo di questa applicazione open source. Tuttavia grazie ai diversi interpreti per altri linguaggi è possibile anche codificare senza problemi linguaggi come C++, PHP o Java.
Riassunto dei vantaggi di Notebook Jupyter:
Riassunto dei vantaggi di Notebook Jupyter:
- Open source (licenza BSD modificata)
- Utilizzabile gratuitamente
- Basato su browser
- Livecode
- Diverse opzioni per esportare e condividere i risultati
- Gestione delle versioni
- Possibilità di collaborazione con altri (JupyterHub)
- Oltre 50 linguaggi di programmazione supportati