Scheda di riferimento per Jupyter Notebook

Scorciatoie essenziali e comandi magici

Indice

Jumpstart the produttività del Jupyter Notebook con scorciatiere essenziali, comandi magici e suggerimenti per il flusso di lavoro che trasformeranno l’esperienza di data science e sviluppo.

interfaccia del notebook Jupyter

Il Jupyter Notebook è diventato lo standard de facto per il calcolo interattivo, l’analisi dei dati e i flussi di lavoro di machine learning. Che tu stia lavorando con Python per la data science, sperimentando con modelli AI o prototipando codice, padroneggiare le scorciatiere del tastiera e i comandi magici di Jupyter può aumentare drasticamente la tua produttività.

Questo foglio di riferimento copre i comandi e le scorciatiere più essenziali che ogni utente di Jupyter dovrebbe conoscere, dal navigare tra le celle di base ai comandi magici avanzati che semplificano il tuo flusso di lavoro. Se sei nuovo nello sviluppo Python, potresti trovare utile anche il nostro Python Cheatsheet per comprendere i costrutti linguistici di Python che funzionano in modo impeccabile all’interno delle celle di Jupyter.

Comprendere la modalità Comando vs. Modalità Modifica

Il Jupyter Notebook opera in due modalità distinte che determinano quali scorciatiere della tastiera sono disponibili:

  • Modalità Comando (attivata premendo Esc): Controlla le operazioni a livello di cella come creare, eliminare e convertire le celle
  • Modalità Modifica (attivata premendo Enter): Permette di modificare il contenuto all’interno di una cella

La scorciata più importante da ricordare è premere H in modalità comando, che visualizza il dialogo completo delle scorciatiere della tastiera. Questo è il tuo riferimento rapido quando dimentichi una scorciata specifica.

Scorciatiere essenziali della Modalità Comando

Il flusso di lavoro principale in Jupyter ruota intorno all’esecuzione efficiente delle celle:

  • Shift + Enter: Esegui la cella corrente e seleziona automaticamente la cella successiva. Questa è la scorciata più utilizzata per eseguire il codice in modo sequenziale.
  • Ctrl + Enter: Esegui la cella corrente senza passare alla successiva. Perfetto quando devi rieseguire una cella più volte.
  • Alt + Enter: Esegui la cella corrente e inserisci una nuova cella sotto. Ideale per lo sviluppo iterativo dove devi aggiungere frequentemente nuove celle.

Gestione delle celle

Gestire efficacemente la struttura del notebook è cruciale per mantenere notebook puliti e organizzati:

  • A: Inserisci una nuova cella sopra la cella corrente
  • B: Inserisci una nuova cella sotto la cella corrente
  • D, D (premi D due volte): Elimina la cella corrente. Fai attenzione a questa!
  • Z: Annulla l’ultima eliminazione di cella. Un salvavita quando elimini per errore celle importanti.
  • Shift + M: Unisci le celle selezionate. Seleziona più celle utilizzando Shift + J o Shift + K per navigare, quindi uniscile.

Conversione del tipo di cella

Passare rapidamente tra i tipi di cella è essenziale per creare notebook ben documentati:

  • Y: Converte la cella in Codice
  • M: Converte la cella in Markdown
  • R: Converte la cella in Raw (non eseguito, utile per appunti)
  • 1 a 6: Converte la cella in livelli di intestazione da 1 a 6 per una documentazione strutturata

Operazioni del kernel

Quando si lavora con calcoli lunghi o di debug, il controllo del kernel è essenziale:

  • I, I (premi I due volte): Interrompi il kernel. Critico quando devi fermare un calcolo fuori controllo.
  • 0, 0 (premi 0 due volte): Riavvia il kernel. Utilizzalo quando devi svuotare tutte le variabili e ricominciare da capo.

Visualizzazione e navigazione

  • L: Attiva/disattiva i numeri di riga nella cella corrente. Utile per il debug e il riferimento a righe specifiche.
  • O: Attiva/disattiva l’output della cella. Nascondi l’output per mantenere il notebook pulito quando lo presenti.
  • H: Mostra il dialogo delle scorciatiere della tastiera

Scorciatiere essenziali della Modalità Modifica

Quando si modifica il codice all’interno di una cella, queste scorciatiere rispecchiano la funzionalità comune di un editor di testo:

Modifica del testo

  • Tab: Completamento del codice o indentazione. L’autocompletamento di Jupyter è potente e contestuale.
  • Shift + Tab: Mostra la tooltip/documentazione per l’oggetto sotto il cursore. Questo è estremamente utile per esplorare API senza lasciare il notebook.
  • Ctrl + ]: Indenta le righe selezionate
  • Ctrl + [: Deindenta le righe selezionate
  • Ctrl + /: Attiva/disattiva il commento sulle righe selezionate. Essenziale per commentare rapidamente il codice durante il debug.
  • Ctrl + A: Seleziona tutto il testo nella cella
  • Ctrl + Z: Annulla
  • Ctrl + Shift + Z o Ctrl + Y: Ripristina
  • Ctrl + Home: Vai all’inizio della cella
  • Ctrl + End: Vai alla fine della cella
  • Ctrl + Left: Muovi il cursore una parola a sinistra
  • Ctrl + Right: Muovi il cursore una parola a destra

Cambio di modalità

  • Esc: Passa alla Modalità Comando (da Modalità Modifica)

Comandi magici: potenzia il tuo flusso di lavoro

I comandi magici sono direttive speciali che estendono la funzionalità di Jupyter. Sono disponibili in due versioni: magici di riga (prefissati con %) che operano su una singola riga, e magici di cella (prefissati con %%) che operano sull’intera cella.

Profilatura delle prestazioni

Comprendere le prestazioni del codice è cruciale per l’ottimizzazione. Jupyter fornisce comandi di timing integrati:

# Tempo di esecuzione singolo
%time sum(range(1000000))

# Tempo di esecuzione multipla con media (più accurato)
%timeit sum(range(1000000))

# Tempo di esecuzione di un'intera cella
%%time
total = 0
for i in range(1000000):
    total += i

Il comando %timeit è particolarmente utile poiché esegue il codice più volte e fornisce informazioni statistiche sul tempo di esecuzione, rendendolo ideale per confrontare diverse soluzioni dello stesso problema.

Esecuzione di script esterni

Il comando magico %run ti permette di eseguire script Python esterni all’interno del tuo notebook, rendendo facile la modularizzazione del codice:

%run my_script.py

Questo è particolarmente utile quando si lavora con progetti più grandi dove si desidera mantenere funzioni riutilizzabili in file separati. Se gestisci ambienti Python, potresti stare utilizzando strumenti come uv o venv per la gestione degli ambienti, e %run funziona in modo impeccabile con queste configurazioni.

Gestione dei pacchetti

Puoi installare e gestire pacchetti Python direttamente dal tuo notebook:

!pip install numpy pandas matplotlib
!conda install scipy

Questo elimina la necessità di passare tra il terminale e il notebook, semplificando il flusso di lavoro di sviluppo. Il prefisso ! esegue comandi shell, che esploreremo più avanti.

Visualizzazione

Per la visualizzazione dei dati con matplotlib, utilizza:

%matplotlib inline

Questo assicura che i grafici vengano visualizzati direttamente all’interno delle celle del notebook, offrendo un’esperienza di visualizzazione senza interruzioni. Puoi anche utilizzare %matplotlib widget per grafici interattivi in JupyterLab.

Operazioni sui file

Il magico di cella %%writefile scrive il contenuto della cella in un file:

%%writefile example.py
def hello_world():
    print("Hello, World!")
    return True

Questo è utile per generare script o salvare frammenti di codice direttamente dal notebook. Al contrario, puoi leggere file utilizzando le operazioni standard di file in Python o comandi shell.

Comandi shell

Esegui comandi shell direttamente dalle celle del notebook:

# Comando shell su una singola riga
!ls -l
!pwd
!git status

# Comandi shell su più righe
%%bash
echo "Hello from Bash"
ls -l
find . -name "*.py" | head -10

Quest’integrazione è potente per la gestione dei file, le operazioni di controllo versione e le attività di amministrazione del sistema senza lasciare l’ambiente del notebook.

Esplorare i comandi magici disponibili

Per scoprire tutti i comandi magici disponibili:

# Elenco di tutti i comandi magici
%lsmagic

# Ottenere aiuto su un comando magico specifico
%timeit?
%matplotlib?

L’operatore ? dopo qualsiasi comando magico mostra la sua documentazione, i parametri e gli esempi di utilizzo. Questo è un ottimo modo per esplorare interattivamente le capacità di Jupyter.

Consigli avanzati e buone pratiche

Organizzazione del notebook

  1. Utilizza liberamente le celle Markdown: I notebook ben documentati sono più facili da comprendere e mantenere. Utilizza i livelli di intestazione (1-6) per creare una struttura chiara.

  2. Mantieni le celle focalizzate: Ogni cella dovrebbe avere uno scopo chiaro e singolo. Questo rende il debug più facile e migliora la leggibilità.

  3. Utilizza i numeri di esecuzione delle celle: I numeri di esecuzione (In [1], In [2], ecc.) ti aiutano a tracciare l’ordine di esecuzione, che è cruciale quando le celle vengono eseguite in ordine diverso.

Lavorare con notebook di grandi dimensioni

Quando i notebook diventano grandi, queste tecniche aiutano a mantenere l’organizzazione:

  • Utilizza l’estensione dell’indice (se disponibile) per la navigazione
  • Dividi sezioni correlate in notebook separati
  • Utilizza %%writefile per estrarre codice riutilizzabile in moduli Python
  • Riavvia regolarmente il kernel ed esegui tutte le celle per garantire la riproducibilità

Integrazione con altri strumenti

I notebook Jupyter funzionano eccellentemente con gli strumenti moderni per Python. Se stai lavorando con LLM e hai bisogno di output strutturati, puoi integrare i notebook con strumenti come Ollama per output strutturati di LLM. Per lo scraping web e l’elaborazione dei dati, potresti trovare utili librerie che convertono HTML in Markdown, simili a quelle che abbiamo coperto nel nostro Guida per la conversione HTML in Markdown.

Flusso di lavoro per il debug

  1. Utilizza il magico %debug dopo un’eccezione per entrare nel debugger
  2. Utilizza %pdb on per entrare automaticamente nel debugger in caso di eccezioni
  3. Le istruzioni di stampa e %timeit aiutano a identificare i collo di bottiglia delle prestazioni
  4. Riavvia il kernel (0, 0) quando le variabili entrano in stati inaspettati

Personalizzazione

Puoi personalizzare le scorciatiere della tastiera andando su HelpKeyboard Shortcuts nel menu di Jupyter Notebook. Questo ti permette di adattare l’ambiente alle tue preferenze di workflow specifiche.

Conclusione

Mastricare le scorciatiere e i comandi magici di Jupyter Notebook trasforma il notebook da un semplice editor di codice in un potente ambiente di calcolo interattivo. Inizia memorizzando le scorciatiere più utilizzate (Shift+Enter, Esc, A, B, D+D, M, Y), quindi incorpora gradualmente i comandi magici nel tuo workflow. Il tempo investito nell’apprendere questi comandi paga dividendi in termini di produttività e efficienza del workflow.

Ricorda: premi H in modalità comando in qualsiasi momento per visualizzare il riferimento completo delle scorciatiere, e utilizza %lsmagic per esplorare tutti i comandi magici disponibili. Buon coding!

Riferimenti esterni