Jupyter Notebook: guida al suo utilizzo

Lo sviluppo di pipeline di analisi dei dati da parte dei Data Scientists richiede diverse competenze. Avere a disposizione un'ambiente di sviluppo facile, intuitivo e interattivo è fondamentale. Jupyter Notebook è un’applicazione Web open source che permette di creare e condividere documenti testuali interattivi, contenenti oggetti quali equazioni, grafici e codice sorgente eseguibile in diversi linguaggi. Scopriamo le sue caratteristiche principali.

Share

Reading time: 7 minutes

Al giorno d’oggi i dati sono diventati fondamentali per qualsiasi attività da quelle commerciali a quelle di ricerca. Solo negli ultimi due anni è stato creato quasi il 90% dei dati in circolazione. Dai contenuti condivisi sui social media ai dati bancari, archivi di immagini e video, segnali Gps, dati telefonici e così via. Sono solo alcuni esempi che rendono particolarmente chiara l’importanza di una figura professionale ormai divenuta necessaria e sempre più richiesta nel mercato del lavoro: il Data Scientist. Questa figura rappresenta l’esperto di analisi dei dati, strutturati e non strutturati, che aiuta le aziende e/o gli enti di ricerca a raggiungere precisi.

Sviluppare pipeline di analisi richiede competenze specifiche sia di analisi dei problemi che di programmazione. I linguaggi di programmazione disponibili sono diversi, ma negli ultimi anni quello che ha conquistato una buona fetta del mercato è Python. Basta osservare il numero di ricerche relative a tutorial o esempi di codici inerenti a questo linguaggio. Esse sono cresciute più del 15% negli ultimi 5 anni come riportato da PYPL (PopularitY of Programming Language). Le motivazioni principali sono legate alla facilità di apprendimento del linguaggio stesso e alla vasta gamma di librerie offerte.

Indipendentemente dal linguaggio preferito, un problema molto comune dei Data Scientists è quello di avere un ambiente di lavoro semplice e funzionale alle analisi. Questo ambiente non deve essere troppo difficile da impostare per ogni progetto e deve permettere anche di visualizzare i risultati intermedi e di inserire la documentazione relativa. Tra i vari strumenti disponibili non possiamo che citare Jupyter Notebook.

Jupyter Notebook è un’applicazione Web open source che permette di creare e condividere documenti testuali interattivi, contenenti oggetti quali equazioni, grafici e codice sorgente eseguibile. Jupyter offre la possibilità di realizzare, documentare e condividere analisi di dati che includono ad esempio:

  • pulizia e trasformazione dei dati
  • simulazione numerica
  • modellazione statistica
  • visualizzazione dei dati
  • apprendimento automatico.

Inoltre supporta oltre 40 linguaggi di programmazione, il che lo rende lo strumento ideale per ogni Data Scientist.

In questo articolo vedremo come installare Jupyter Notebook sul proprio pc e come muovere i primi passi con questo strumento. 

Installazione

Nonostante Jupyter possa eseguire codice in diversi linguaggi di programmazione, Python è un requisito (Python 3.3 o superiore, o Python 2.7) per installarlo.

Il modo più semplice per iniziare con Jupyter Notebook è installare Anaconda. Vi consigliamo la versione individuale che è gratuita. Le versioni a pagamento sono rivolte allo sviluppo di prodotti commerciali o l’utilizzo del software da parte di team.

Anaconda è la distribuzione Python più utilizzata per l’analisi dei dati e viene fornita con tutte le librerie e gli strumenti più popolari, tra cui le librerie Python NumPy, Pandas e Matplotlib.

Anaconda consente di iniziare a lavorare sui nostri progetti senza il fastidio di gestire innumerevoli installazioni o preoccuparci delle dipendenze e dei problemi di installazione specifici del sistema operativo.

Una volta installato Anaconda potrete lanciare o da riga di comando o da interfaccia dell’applicativo Juptyter Notebook. Qui sotto è riportata l’interfaccia di Anaconda Navigator disponibile per Mac. In questo caso per lanciare il Notebook basta cliccare sul pulsante Launch relativo a Jupyter.

Se preferite installare Jupyter e i vari pacchetti manualmente potete utilizzare il comando pip.

Per prima cosa, dovete assicurarvi di avere l’ultima versione di pip installata per evitare problemi con alcune dipendenze.

pip3 install --upgrade pip 

Poi potete installare Jupyter Notebook usando il seguente comando.

pip3 install jupyter 

Indipendentemente dalla scelta effettuata per aprire Jupyter, verrà aperta una nuova scheda nel browser predefinito all’indirizzo http://localhost:8888/tree.

La dashboard che si apre contiene diverse schede tra cui:

  • File: dove vengono mostrati tutti i file e i notebook nella directory corrente;
  • Running: permette di mostrare tutti i kernel attualmente in esecuzione sul tuo computer;
  • Cluster: consente di avviare i kernel per il calcolo in parallelo.

Creare un Notebook

Dopo aver aperto Jupyter siamo pronti per creare il nostro primo notebook.

Per creare un notebook, tutto quello che bisogna fare è cliccare sul pulsante New (in alto a destra) e si aprirà un elenco di scelte.

Poiché nell’installazione base è presente solo Python 3, è possibile solo creare un Notebook che utilizza questo linguaggio. Diversamente è possibile aprire un file di testo, una cartella o un terminale. In questo tutorial scegliamo Python 3. A questo punto verrà aperta una nuova scheda del browser.

Il Notebook avrà come nome Untitled. Consigliamo di inserire un nome subito all’inizio così da evitare eventuali perdite del lavoro. Per farlo basta cliccare sul nome e apparirà la seguente finestra. A questo punto potete inserire il nome che preferite.

I notebook che vengono creati avranno l’estensione standard ipynb. Per vedere il file corrispondente, che poi potrà essere rilasciato ad altre persone e/o collaboratori è sufficiente ritornare nella scheda iniziale. Nel folder corrente troverete il file corrispondente.

Interfaccia del Notebook Jupyter

Ogni Notebook Jupyter presenta la stessa interfaccia costituita dai seguenti componenti:

  • Menu bar: consente di accedere a diverse azioni relative al notebook o al kernel.
  • Kernel: a destra della barra dei menu,  indica il processo che esegue una sessione interattiva. Quando si utilizza IPython, questo kernel è un processo Python.
  • Toolbar: contiene le icone per azioni comuni. 

Vediamo di seguito questi menu e il tipo di cella che si può utilizzare.

Menu Bar

Il menu bar, visibile lungo la parte superiore del notebook, contiene le seguenti voci.

  • File: consente di creare un nuovo notebook o aprirne uno preesistente. Una delle voci del menu più utile è l’opzione Save e checkpoint, che consente di creare dei checkpoints per eventuali rollback.
  • Edit: serve per modificare, tagliare, copiare, incollare celle, eliminare, dividere, unire celle o riordinarle tra di loro. Sono abilitate solo le voci del menu che si possono applicare alla cella attualmente selezionata. Ad esempio, una cella di tipo codice non può avere un’immagine inserita al suo interno, mentre una cella Markdown sì.
  • View:serve per attivare o disattivare la visibilità dell’intestazione e della barra degli strumenti. E’ possibile anche attivare o disattivare i numeri di riga all’interno delle celle.
  • Insert: inserisce celle sopra o sotto la cella attualmente selezionata.
  • Cell: consente di eseguire una cella, un gruppo di celle o tutte le celle. Può anche essere utilizzarlo per cambiare il tipo di una cella e cancellare l’output di una cella.
  • Kernel: serve per interagire con il kernel in esecuzione in background come ad esempio riavviarlo, spegnerlo o persino cambiarlo.
  • Widget: serve per salvare e cancellare lo stato del widget. I widget sono fondamentalmente widget JavaScript che è possibile aggiungere alle celle per creare contenuti dinamici usando Python (o un altro kernel).
  • Help: fornisce le scorciatoie da tastiera del notebook, un tour dell’interfaccia utente e molto materiale di riferimento.

Toolbar

Il menu toolbar è un menu molto utilizzato per creare, copiare o eliminare nuove celle in modo veloce.

 

Partendo da sinistra troviamo le seguenti icone:

  • Salva: permette di salvare il notebook;
  • Aggiungi: permette di aggiungere una nuova cella nella posizione che si preferisce.
  • Taglia: permette di cancellare una nuova cella nella posizione scelta.
  • Copia: copia il codice di una cella (o il testo) in un’altra.
  • Duplica: incolla il codice o il testo della cella copiata con il bottone incolla.
  • Freccia su: sposta una cella da una posizione più bassa a una posizione più alta.
  • Freccia giù: sposta una cella da una posizione più alta a una posizione più bassa.
  • Run: esegue il contenuto di una cella di tipo codice. Si può utilizzare il comando shift + enter (invio) per eseguire lo stesso comando senza cliccare su questo bottone.
  • Stop: interrompe il kernel.
  • Aggiorna: dopo un messaggio di conferma fa ripartire il kernel, e si perdono i calcoli eseguiti fino a quel momento.
  • Avanti: la freccia avanti permette di far ripartire il kernel e al tempo stesso di rieseguire tutte le celle all’interno del kernel.
  • Tipo Cella: indica il tipo di cella che si sta utilizzando.
  • Tastiera: cliccando sul pulsante di tastiera si aprono una lista di comandi che possono essere scelti per modificare il testo, modificare il tipo di cella e una serie di altri comandi.

Tipologie di celle

Esistono due tipi principali di celle: celle Markdown e celle codice.

Una cella Markdown contiene testo RTF. Oltre alle classiche opzioni di formattazione come grassetto o corsivo, possiamo aggiungere link, immagini, elementi HTML, equazioni matematiche, LaTeX e altro ancora.

Solitamente questa tipologia di cella è utilizzata per inserire la documentazione relativa al Notebook e/o alle celle di codice che seguono.

Una cella codice contiene, invece, il codice che viene eseguito dal kernel. La particolarità di questa tipologia di cella è che possono essere eseguite. Per eseguire una cella, è sufficiente selezionare la cella di interesse e fare clic sul pulsante Run o premere shift + invio.

Dopo aver eseguito una cella codice, viene visualizzata una cella di output sotto la cella codice, che contiene il risultato dalla cella appena eseguita. Attenzione che le celle di output sono visualizzate solo se il codice scritto produce un output. I risultati nelle celle di output non possono essere modificati.

Esistono anche le tipologie Heading e Raw NBConvert. La prima però è deprecata e può essere sostituita con una cella Markdown. Per i dettagli dell’altra tipologia rimandiamo alla documentazione ufficiale.

Esportazione di un file Jupyter

Per condividere un notebook, oltre a fornire direttamente il file ipynb, è possibile esportare il suo contenuto nei seguenti formati:

  • HTML
  • LaTeX
  • PDF
  • Reveal JS
  • Markdown
  • Restructured Text
  • Script eseguibile

L’esportazione può avvenire direttamente dal menù File del Notebook alla voce Download. Diversamente si può usare il seguente comando da shell per esportare il contenuto in formato html

jupyter nbconvert Tutorial.ipynb 

Diversamente se si desidera esportare in pdf si deve eseguire il seguente comando:

jupyter nbconvert Tutorial.ipynb –to PDFviaHTML 

Il download nei vari formati, ad eccezione dell’HTML, richiede l’installazione di alcuni pacchetti.

Conclusioni

In questo articolo abbiamo visto come installare Jupyter Notebook e le sue caratteristiche principali.

Un aspetto interessante dei notebook è che è possibile condividerli ad altri utenti in diversi formati. Oltre ai formati visti è possibile integrarli nei repository GitHub o condividerli mediante Binder.

Letture consigliate

 

<

More To Explore

Intelligenza artificiale

Gradio: applicazioni web in python per AI [parte1]

Scrivere applicazioni web per i nostri modelli di machine learning e/o di intelligenza artificiale può richiedere molto tempo e competenze che non sono in nostro possesso. Per snellire e velocizzare questo compito ci viene in aiuto Gradio, una libreria Python pensata per creare applicazioni web con poche righe di codice. Scopriamo le sue funzionalità base con alcuni esempi.

Intelligenza artificiale

AI: le migliori tecniche di prompt per sfruttare i LLM

Le tecniche di prompt sono alla base dell’uso dei LLM. Esistono diversi studi e linee guide per ottenere i migliori risultati da questi modelli. Analizziamo alcuni di essi per estrarre i principi fondamentali che ci permetteranno di ottenere le risposte desiderate in base al nostro compito.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Design with MongoDB

Design with MongoDB!!!

Buy the new book that will help you to use MongoDB correctly for your applications. Available now on Amazon!