# 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](http://jupyter.org "Homepage ufficiale del 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.

---

### N.B.

Il nome del progetto “Jupyter” deriva dai tre linguaggi di programmazione di base, **Ju**lia, **Pyt**hon 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](https://github.com/jupyterhub/jupyterhub "Guida del progetto di JupyterHub su github.com").

**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:

- **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](https://www.anaconda.com/ "Anaconda: piattaforma Python per Windows, macOS e Linux"), 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'*.

[![Immagine: Notebook Jupyter: documento di testo eseguito su mybinder.org](https://www.ionos.it/digitalguide/fileadmin/_processed_/e/a/csm_Jupyter-EN-1_4da2f115f8.webp "Notebook Jupyter: documento di testo eseguito su mybinder.org")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2019/Jupyter-EN-1.jpg) Mentre si lavora con un documento Notebook Jupyter è sempre possibile inserire checkpoint e memorizzare nella cache ogni singolo passaggio.                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.

---

### Consiglio

Sulla [homepage ufficiale di Jupyter](http://jupyter.org/try "Sito internet del Progetto 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:

- 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


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/notebook-jupyter/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/notebook-jupyter/) for AI/LLM consumption.