CLASSE TERZA β€’ MODULO 02

Anaconda & Jupyter Notebook

Gli strumenti professionali per Data Science e Machine Learning

🎯 Cosa imparerai

In questo modulo scoprirai gli strumenti che usano i professionisti di Data Science e AI. Invece di installare Python "nudo e crudo", useremo Anaconda, che Γ¨ come avere una valigetta degli attrezzi giΓ  completa e pronta all'uso!

πŸ’‘ Analogia per capire meglio

Immagina di voler cucinare una pizza. Potresti comprare separatamente farina, lievito, pomodoro, mozzarella, forno... oppure andare in un negozio che vende un "Kit Pizza Completo" con tutto l'occorrente giΓ  dosato e pronto. Anaconda Γ¨ esattamente questo: un kit completo per la programmazione in Python!

🐍 Cos'è Anaconda?

Anaconda Γ¨ una distribuzione Python specializzata per Data Science e Machine Learning. Pensala come una "suite completa" che include tutto quello che ti serve, giΓ  configurato e pronto all'uso.

πŸ“¦ Python + 250+ Librerie

  • NumPy per calcolo scientifico
  • Pandas per analisi dati
  • Matplotlib per creare grafici
  • Scikit-Learn per Machine Learning
  • E molte altre giΓ  installate!

πŸ› οΈ Strumenti di Sviluppo

  • Jupyter Notebook (ambiente interattivo)
  • Spyder IDE (editor avanzato)
  • Conda (gestore di librerie)
  • Anaconda Navigator (interfaccia grafica)
  • Terminal/Prompt integrato

⚑ Vantaggi

  • Installazione unica e semplice
  • Nessun conflitto tra librerie
  • Aggiornamenti gestiti automaticamente
  • Ambienti isolati per progetti diversi
  • Funziona su Windows, Mac e Linux

πŸ’‘ PerchΓ© Anaconda e non solo Python?

Installare Python base e poi ogni libreria separatamente puΓ² creare problemi di compatibilitΓ  (libreria A funziona con versione X, libreria B con versione Y...). Anaconda risolve tutto questo dando una versione testata e funzionante di tutto l'ecosistema!

πŸ’Ώ Installazione di Anaconda

Segui questi passaggi con calma. L'installazione richiede circa 10-15 minuti e 3 GB di spazio su disco.

1 Download

1. Vai sul sito ufficiale: https://www.anaconda.com/download

2. Il sito riconoscerΓ  automaticamente il tuo sistema operativo (Windows, Mac o Linux)

3. Clicca sul pulsante verde "Download" (circa 500-700 MB)

πŸ’‘ Quale versione?

Scarica sempre l'ultima versione disponibile con Python 3.11 o superiore. Non scaricare Python 2.x (Γ¨ obsoleto).

2 Installazione su Windows

1. Esegui il file .exe scaricato (fare doppio click)

2. Clicca "Next" nella schermata di benvenuto

3. Accetta la licenza e clicca "Next"

4. Importante: Seleziona "Just Me" (consigliato) e clicca "Next"

5. Scegli la cartella di installazione (default va bene) e clicca "Next"

6. FONDAMENTALE: Nella schermata "Advanced Options":

  • βœ… Spunta "Add Anaconda to my PATH environment variable"
  • βœ… Spunta "Register Anaconda as my default Python 3.x"

7. Clicca "Install" e attendi il completamento (5-10 minuti)

8. Clicca "Next" e poi "Finish"

⚠️ Attenzione!

Anche se l'installer dice che aggiungere Anaconda al PATH "non Γ¨ raccomandato", per i nostri scopi Γ¨ molto utile farlo. Ti permetterΓ  di usare Python da qualsiasi terminale.

2bis Installazione su Mac/Linux

1. Apri il Terminale (su Mac: cerca "Terminal" con Spotlight)

2. Naviga nella cartella dei Download:

cd ~/Downloads

3. Rendi il file eseguibile e avvia l'installazione:

# Su Mac/Linux
bash Anaconda3-*.sh

4. Leggi la licenza (premi Invio per scorrerla)

5. Digita yes per accettarla

6. Conferma la posizione di installazione (premi Invio per default)

7. Quando chiede "Do you wish to initialize Anaconda3?", digita yes

8. Chiudi e riapri il terminale per applicare le modifiche

3 Verifica Installazione

Adesso verifichiamo che tutto sia andato a buon fine!

Su Windows: Cerca "Anaconda Prompt" nel menu Start e aprilo

Su Mac/Linux: Apri il Terminale

Digita questi comandi uno alla volta:

conda --version

Dovresti vedere qualcosa come: conda 24.1.2

python --version

Dovresti vedere qualcosa come: Python 3.11.7

βœ… Se vedi questi messaggi, perfetto! L'installazione Γ¨ riuscita.

❌ Se vedi errori tipo "comando non trovato", prova a chiudere e riaprire il terminale. Se il problema persiste, potrebbe essere necessario aggiungere manualmente Anaconda al PATH.

πŸ““ Jupyter Notebook: Il tuo nuovo ambiente di lavoro

Jupyter Notebook è un ambiente interattivo dove puoi scrivere codice Python, vedere immediatamente i risultati, aggiungere note esplicative e creare visualizzazioni. È lo strumento preferito da Data Scientist e ricercatori in tutto il mondo!

πŸ’‘ Analogia: Jupyter vs. Editor tradizionale

Editor tradizionale: Scrivi tutto il codice β†’ lo esegui β†’ vedi i risultati alla fine. Come scrivere una lettera, chiuderla in busta e poi leggerla tutta insieme.

Jupyter Notebook: Scrivi un pezzetto di codice β†’ lo esegui β†’ vedi subito il risultato β†’ continui col prossimo pezzo. Come cucinare assaggiando di volta in volta!

PerchΓ© Jupyter Γ¨ fantastico?

πŸš€ Interattivo

Esegui il codice una cella alla volta e vedi subito cosa succede. Perfetto per sperimentare e imparare!

πŸ“ Documenta mentre codifichi

Alterna codice e testo formattato. Puoi spiegare cosa fa ogni parte del tuo programma.

πŸ“Š Visualizzazioni integrate

Grafici, tabelle e immagini appaiono direttamente nel notebook, senza aprire altre finestre.

πŸš€ Avviare Jupyter Notebook

Ci sono due modi principali per avviare Jupyter. Inizia con quello che preferisci!

1 Metodo 1: Anaconda Navigator (PiΓΉ Facile)

1. Cerca "Anaconda Navigator" nel menu Start (Windows) o nelle Applicazioni (Mac)

2. Aprilo e aspetta che carichi (puΓ² richiedere qualche secondo)

3. Troverai una serie di riquadri con diverse applicazioni

4. Trova "Jupyter Notebook" e clicca sul pulsante verde "Launch"

5. Si aprirΓ  automaticamente il browser con l'interfaccia di Jupyter

πŸ–ΌοΈ [Qui vedrai l'Anaconda Navigator con il pulsante Launch di Jupyter evidenziato]

2 Metodo 2: Da Terminale (PiΓΉ Veloce)

1. Apri il terminale (Anaconda Prompt su Windows, Terminal su Mac/Linux)

2. Digita il comando:

jupyter notebook

3. Premi Invio e aspetta qualche secondo

4. Il notebook si aprirΓ  automaticamente nel browser predefinito

5. Vedrai qualcosa del genere nel terminale:

[I 10:30:45.123 NotebookApp] Jupyter Notebook is running at:
[I 10:30:45.124 NotebookApp] http://localhost:8888/
[I 10:30:45.125 NotebookApp] Use Control-C to stop this server

πŸ“Œ Nota importante:

NON chiudere il terminale mentre usi Jupyter! È come lasciare il motore acceso mentre guidi. Per fermare Jupyter, premi Ctrl + C nel terminale due volte.

🎨 Creare il Tuo Primo Notebook

1 Capire l'interfaccia

Quando avvii Jupyter Notebook, vedi un "file browser" che mostra le cartelle e i file del tuo computer. È come Esplora File (Windows) o Finder (Mac), ma nel browser!

Suggerimento: Naviga in una cartella dove vuoi salvare i tuoi progetti (ad esempio "Documenti" o "Desktop").

2 Creare un nuovo notebook

1. In alto a destra, clicca sul pulsante "New" (Nuovo)

2. Nel menu a tendina, seleziona "Python 3" (o "Python 3 (ipykernel)")

3. Si aprirΓ  una nuova scheda con un notebook vuoto

4. In alto, vedrai "Untitled" - clicca lì per rinominare il notebook

5. Chiamalo "Il_Mio_Primo_Notebook" e premi "Rename"

πŸ’‘ Convenzione sui nomi:

È buona pratica usare nomi descrittivi senza spazi (usa _ al posto degli spazi) e con l'estensione .ipynb (Jupyter Notebook). Esempio: Esercizio_01_Python.ipynb

3 Anatomia di un Notebook: Le Celle

Un notebook Γ¨ composto da celle, che sono dei "blocchi" dove puoi scrivere. Ci sono principalmente due tipi di celle:

πŸ“ Celle di Codice (Code)

Qui scrivi il codice Python che verrΓ  eseguito:

# Questa Γ¨ una cella di codice
print("Ciao a tutti!")
risultato = 5 + 3
print("5 + 3 =", risultato)

Come eseguire: Clicca sulla cella e premi Shift + Enter (o clicca il pulsante ▢️ "Run" in alto). Vedrai l'output apparire subito sotto!

πŸ“„ Celle di Markdown (Testo)

Qui scrivi testo formattato, spiegazioni, titoli:

# Questo Γ¨ un titolo grande
## Questo Γ¨ un sottotitolo

Posso scrivere testo normale e usare **grassetto** o *corsivo*.

Posso anche fare liste:
- Punto uno
- Punto due
- Punto tre

Per cambiare tipo di cella: Seleziona la cella e usa il menu a tendina in alto (dove c'Γ¨ scritto "Code" o "Markdown"), oppure premi M per Markdown e Y per Code.

⌨️ Comandi Essenziali di Jupyter

Jupyter ha due "modalitΓ ": Command Mode (per navigare tra celle) e Edit Mode (per scrivere dentro una cella).

πŸ”΅ Command Mode: Quando il bordo della cella Γ¨ BLU. Puoi navigare e modificare la struttura del notebook.

🟒 Edit Mode: Quando il bordo della cella è VERDE. Puoi scrivere dentro la cella.

Passare da uno all'altro: Premi Esc per Command Mode, Enter per Edit Mode.

Comandi Principali

╔════════════════════════════════════════════════════════╗
β•‘ ESEGUIRE CODICE                                        β•‘
╠════════════════════════════════════════════════════════╣
β•‘ Shift + Enter    β†’ Esegui cella e vai alla successiva β•‘
β•‘ Ctrl + Enter     β†’ Esegui cella e resta sulla stessa  β•‘
β•‘ Alt + Enter      β†’ Esegui e inserisci nuova sotto     β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

╔════════════════════════════════════════════════════════╗
β•‘ GESTIRE CELLE (in Command Mode, bordo blu)            β•‘
╠════════════════════════════════════════════════════════╣
β•‘ A                β†’ Inserisci cella sopra (Above)       β•‘
β•‘ B                β†’ Inserisci cella sotto (Below)       β•‘
β•‘ DD               β†’ Elimina cella (premi D due volte)   β•‘
β•‘ X                β†’ Taglia cella                        β•‘
β•‘ C                β†’ Copia cella                         β•‘
β•‘ V                β†’ Incolla cella                       β•‘
β•‘ M                β†’ Converti in Markdown                β•‘
β•‘ Y                β†’ Converti in Code                    β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

╔════════════════════════════════════════════════════════╗
β•‘ SALVARE E ALTRO                                        β•‘
╠════════════════════════════════════════════════════════╣
β•‘ Ctrl + S         β†’ Salva notebook                      β•‘
β•‘ Esc              β†’ Entra in Command Mode               β•‘
β•‘ Enter            β†’ Entra in Edit Mode                  β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ’‘ Trucco per memorizzare:

A come "Above" (sopra) - B come "Below" (sotto)

DD come "Delete Delete" (elimina, conferma eliminazione)

M come "Markdown" - Y... beh, quello Γ¨ piΓΉ difficile da ricordare! πŸ˜…

🎯 Esempio Pratico Completo

Ora metti in pratica tutto quello che hai imparato! Crea un nuovo notebook e replica questo esempio, cella per cella. Ricordati di eseguire ogni cella con Shift + Enter!

Cella 1 - Markdown (Titolo)

Cambia il tipo cella in Markdown (premi M) e scrivi:

# 🐍 Il Mio Primo Notebook Python

**Data:** 15 Gennaio 2025  
**Autore:** [Scrivi il tuo nome]

---

Questo Γ¨ il mio primo esperimento con Jupyter Notebook!  
Qui imparerΓ² a usare Python in modo interattivo.

Esegui la cella (Shift + Enter) - vedrai il testo formattato!

Cella 2 - Codice (Operazioni Base)

Lascia questa cella come Code e scrivi:

# Operazioni matematiche base
print("=== CALCOLATRICE PYTHON ===\n")

a = 10
b = 3

print(f"I numeri sono: {a} e {b}\n")
print(f"Addizione: {a} + {b} = {a + b}")
print(f"Sottrazione: {a} - {b} = {a - b}")
print(f"Moltiplicazione: {a} Γ— {b} = {a * b}")
print(f"Divisione: {a} Γ· {b} = {a / b:.2f}")
print(f"Potenza: {a}^{b} = {a ** b}")

Esegui - vedrai l'output subito sotto la cella!

Cella 3 - Codice (Liste e Statistiche)

# Lavoriamo con una lista di voti
print("=== ANALISI VOTI ===\n")

voti = [7, 8, 6.5, 9, 7.5, 8.5, 6, 10]
print("Voti:", voti)
print()

# Statistiche
numero_voti = len(voti)
somma_voti = sum(voti)
media = somma_voti / numero_voti
voto_migliore = max(voti)
voto_peggiore = min(voti)

print(f"πŸ“Š Statistiche:")
print(f"   β€’ Numero di voti: {numero_voti}")
print(f"   β€’ Media: {media:.2f}")
print(f"   β€’ Voto migliore: {voto_migliore}")
print(f"   β€’ Voto peggiore: {voto_peggiore}")

# Verifica promozione
if media >= 6:
    print(f"\nβœ… PROMOSSO con media {media:.2f}!")
else:
    print(f"\n❌ Non promosso. Media: {media:.2f}")

Cella 4 - Markdown (Conclusioni)

Cambia in Markdown (M) e scrivi:

## πŸ’‘ Cosa ho imparato

In questo notebook ho sperimentato con:

1. βœ… Operazioni matematiche in Python
2. βœ… F-strings per formattare l'output
3. βœ… Liste e funzioni integrate (sum, len, max, min)
4. βœ… Strutture condizionali (if/else)

Jupyter Notebook rende tutto piΓΉ **interattivo** e **facile da capire**!

---

### 🎯 Prossimi passi

Nel prossimo modulo esplorerΓ² **NumPy** per il calcolo scientifico!

πŸŽ‰ Complimenti!

Hai appena creato il tuo primo Jupyter Notebook completo! Noterai come alternare codice e spiegazioni renda tutto piΓΉ chiaro e organizzato.

πŸ”§ Gestire Librerie con Conda

Conda Γ¨ il "gestore di pacchetti" di Anaconda. Serve per installare, aggiornare e rimuovere librerie Python. Ecco i comandi essenziali che userai spesso!

Installare Librerie

# Installare una singola libreria
conda install numpy

# Installare piΓΉ librerie insieme (piΓΉ veloce!)
conda install pandas matplotlib seaborn

# Installare una versione specifica
conda install numpy=1.24.0

Gestire Librerie Installate

# Vedere tutte le librerie installate
conda list

# Cercare una libreria specifica
conda list numpy

# Aggiornare una libreria
conda update numpy

# Aggiornare tutte le librerie
conda update --all

# Rimuovere una libreria
conda remove nome_libreria

πŸ“Œ Quando usare pip vs conda?

Se una libreria Γ¨ disponibile sia su conda che su pip, usa sempre conda quando lavori con Anaconda. Conda gestisce meglio le dipendenze. Usa pip solo per librerie che non sono disponibili su conda.

πŸ’ͺ Esercizi Pratici

Esercizio 1: Setup e Verifica ⭐

Obiettivo: Familiarizzare con l'ambiente Anaconda

1. Installa Anaconda seguendo la guida

2. Verifica l'installazione con conda --version e python --version

3. Avvia Jupyter Notebook (usa il metodo che preferisci)

4. Esplora l'interfaccia: naviga tra cartelle, guarda i file esistenti

Esercizio 2: Il Mio Diario di Apprendimento ⭐⭐

Obiettivo: Creare un notebook documentato

Crea un notebook chiamato "Diario_Python.ipynb" con:

  • Cella 1 (Markdown): Titolo e data, presentazione di te stesso
  • Cella 2 (Code): Calcola quanti giorni hai vissuto (etΓ  Γ— 365)
  • Cella 3 (Code): Lista di 5 tuoi hobby e stampa il primo e l'ultimo
  • Cella 4 (Markdown): Scrivi cosa ti aspetti di imparare in questo corso

Esercizio 3: Analizzatore di Numeri ⭐⭐

Obiettivo: Praticare con liste e statistiche

Crea un notebook "Analisi_Numeri.ipynb" che:

  • Crea una lista con 10 numeri a tua scelta
  • Calcola e mostra: somma, media, minimo, massimo
  • Crea una nuova lista con i quadrati di ogni numero
  • Conta quanti numeri sono pari e quanti dispari
  • Documenta ogni step con celle Markdown

Esercizio 4: Mini Calcolatrice Interattiva ⭐⭐⭐

Obiettivo: Combinare input utente e logica

Crea "Calcolatrice.ipynb" che:

  • Chiede all'utente due numeri (usa input() e converti in float)
  • Chiede che operazione fare (+, -, *, /)
  • Esegue l'operazione e mostra il risultato
  • Gestisci il caso divisione per zero con un if
  • Aggiungi celle Markdown per spiegare la logica

Esercizio 5: Esplora i Comandi ⭐

Obiettivo: Padroneggiare le shortcuts di Jupyter

In un notebook di prova, esercitati con:

  • Inserire celle sopra e sotto (A e B)
  • Cancellare celle (DD)
  • Cambiare tipo cella (M per Markdown, Y per Code)
  • Copiare, tagliare e incollare celle (C, X, V)
  • Eseguire celle in modi diversi (Shift+Enter, Ctrl+Enter, Alt+Enter)

✨ Best Practices e Consigli

πŸ“ Documentazione Efficace

  • Inizia ogni notebook con una cella Markdown che spiega cosa fa
  • Aggiungi titoli (# ## ###) per organizzare in sezioni
  • Spiega il "perchΓ©" del codice, non solo il "cosa"
  • Usa emoji per rendere piΓΉ leggibile (ma senza esagerare! 😊)

🎯 Organizzazione del Codice

  • Una cella = un concetto: Non mettere 100 righe in una cella
  • Nomi chiari: "01_Intro.ipynb", "02_Analisi_Dati.ipynb" sono meglio di "Untitled1", "Untitled2"
  • Cartelle organizzate: Crea cartelle per progetti diversi
  • Ordine di esecuzione: Le celle dovrebbero funzionare eseguite dall'alto verso il basso

⚑ Efficienza e Produttività

  • Restart & Run All: Menu β†’ Kernel β†’ Restart & Run All - per testare tutto il notebook
  • Clear Output: Cell β†’ All Output β†’ Clear - rimuove output pesanti prima di salvare
  • Salva spesso: Ctrl+S dopo modifiche importanti (anche se salva auto ogni 2 min)
  • Commenta il codice: Usa # per spiegare parti complesse

⚠️ Errori Comuni da Evitare

  • Eseguire celle in ordine sparso: PuΓ² creare confusione. Segui sempre l'ordine dall'alto al basso
  • Non salvare il lavoro: Jupyter salva auto, ma salva manualmente prima di chiudere!
  • Chiudere il terminale: Se chiudi il terminale mentre Jupyter Γ¨ attivo, perdi il lavoro non salvato
  • Celle troppo lunghe: Spezza il codice in celle piΓΉ piccole e gestibili

πŸ“ Riepilogo della Lezione

Congratulazioni! Hai completato il Modulo 02. Ecco cosa hai imparato:

🎯 Prossima Lezione: NumPy

Nel prossimo modulo inizieremo a usare NumPy, la libreria fondamentale per il calcolo scientifico in Python. Imparerai a lavorare con array multidimensionali, fare operazioni matematiche veloci e molto altro!

Consiglio: Prima di passare al prossimo modulo, assicurati di aver completato almeno gli esercizi 1, 2 e 3. La pratica Γ¨ fondamentale! πŸ’ͺ