Buone pratiche per i notebook Jupyter
Celle numerate, output cancellati prima del commit ed esecuzione parametrizzata con papermill.
Buone pratiche per i notebook Jupyter è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Il doppio volto dei notebook
I notebook Jupyter sono fantastici per l'esplorazione: esegua il codice nelle celle, visualizzi i grafici direttamente nel notebook e proceda rapidamente per iterazioni. Tuttavia, la stessa flessibilità può generare codice disordinato e non riproducibile se non lavora con disciplina.
Questa lezione illustra le abitudini che mantengono i notebook ordinati e affidabili.
Stato nascosto: il problema fondamentale
Può eseguire le celle in qualsiasi ordine e i risultati precedenti rimangono in memoria. Questo stato nascosto fa sì che un notebook possa mostrare risultati corretti che nessuna nuova esecuzione riuscirebbe a riprodurre.
Quasi tutte le buone pratiche per i notebook servono a contrastare lo stato nascosto.
Eseguire le celle in sequenza
I numeri di esecuzione, ovvero [1], [2] accanto alle celle, dovrebbero aumentare dall'alto verso il basso. Numeri fuori ordine, come [7] sopra [3], sono un segnale d'allarme: indicano che il notebook dipende da uno stato nascosto.
Scriva i notebook in modo che siano comprensibili leggendoli dall'alto verso il basso.
Riavviare il kernel ed eseguire tutto
La regola d'oro è questa: prima di considerare affidabile o salvare un notebook, esegua Kernel → Riavvia ed esegui tutto. Questa operazione cancella la memoria ed esegue ogni cella dall'inizio.
Se l'esecuzione procede senza errori dall'alto verso il basso, il notebook è riproducibile. Se si interrompe, ha individuato bug dovuti allo stato nascosto.
Mantenere le celle focalizzate
Un solo passaggio logico per cella rende i notebook leggibili e rieseguibili. Eviti le celle enormi che fanno dieci cose e anche di distribuire una singola operazione in molte celle minuscole.
Usi le celle Markdown per descrivere le sezioni come in una relazione.
Spostare il codice riutilizzabile nei moduli
Quando una funzione si dimostra utile, la sposti dal notebook in src/ e la importi. In questo modo i notebook rimangono essenziali, il codice diventa verificabile e si evita che le copie nei vari notebook divergano nel tempo.
from src.features.build_features import make_features
X = make_features(df) # logic lives in a tested moduleIl problema delle differenze negli output
I notebook memorizzano gli output delle celle, ovvero testo, tabelle di grandi dimensioni e immagini in base64, all'interno del JSON .ipynb. Salvare questi output rende le differenze di Git enormi e rumorose e può causare fughe di dati.
La soluzione: rimuovere gli output prima del commit.
Cancellare gli output con nbstripout
nbstripout rimuove automaticamente gli output dai notebook. Lo installi come filtro Git, così gli output verranno rimossi a ogni commit senza che debba ricordarsene.
# pip install nbstripout
nbstripout --install # adds a git filter for this repo
# now committed notebooks have clean, output-free diffsParametrizzare i notebook con papermill
papermill esegue un notebook in modo programmatico con parametri iniettati, come se chiamasse una funzione. Contrassegni una cella con parameters e papermill sostituirà quei valori a ogni esecuzione.
# pip install papermill
# papermill analysis.ipynb out.ipynb -p dataset "may.csv" -p seed 42Esecuzioni parametrizzate nel codice
Può anche controllare papermill da Python per eseguire lo stesso notebook di analisi su molti input: è un modo ordinato per eseguire esperimenti in batch.
import papermill as pm
for ds in ["jan.csv", "feb.csv", "mar.csv"]:
pm.execute_notebook(
"analysis.ipynb",
f"out_{ds}.ipynb",
parameters={"dataset": ds, "seed": 42},
)Checklist per la gestione dei notebook
Prima di condividere o salvare un notebook:
- Riavvii il kernel ed esegua tutto: l'esecuzione deve terminare senza errori
- Le celle devono essere eseguite dall'alto verso il basso, con numeri crescenti
- La logica riutilizzabile deve essere spostata nei moduli in
src/ - Gli output devono essere rimossi con nbstripout
- Il Markdown deve descrivere lo svolgimento dell'analisi
Verifica rapida: fidarsi di un notebook
Prima di eseguire il commit, vuole verificare che il notebook sia riproducibile e privo di bug dovuti allo stato nascosto.
Riepilogo: buone pratiche per i notebook
Ha imparato a mantenere i notebook ordinati e riproducibili:
- Contrasti lo stato nascosto eseguendo le celle in sequenza
- Riavvii il kernel ed esegua tutto prima di considerare affidabile il notebook o salvarlo
- Sposti il codice riutilizzabile nei moduli in
src/ - Usi nbstripout per cancellare gli output e ottenere differenze Git ordinate
- Usi papermill per esecuzioni parametrizzate e in batch dei notebook
Con questo si conclude il corso Struttura dei progetti di IA e flusso di lavoro Git.
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 53
- Lezioni
- 225
Domande Frequenti
La lezione «Buone pratiche per i notebook Jupyter» è gratuita?
Sì — il testo completo di «Buone pratiche per i notebook Jupyter» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Buone pratiche per i notebook Jupyter»?
Celle numerate, output cancellati prima del commit ed esecuzione parametrizzata con papermill. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Buone pratiche per i notebook Jupyter»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Struttura professionale delle directory di un progetto IA
- Git per progetti di IA
- Riproducibilità: seed, configurazioni e ambienti
- Buone pratiche per i notebook Jupyter