Programmazione in Python: Guida completa a Vettori e Matrici
In questo approfondimento, tratto dal Capitolo 3 del manuale “Programmazione in Python per le scienze della vita”[cite: 8, 12], esploreremo come gestire collezioni di dati complessi. I materiali fanno parte del corso ufficiale disponibile su salvatoremancarella.it[cite: 11].
Presentazione Interattiva
1. Lavorare con i Vettori in Python
L’obiettivo principale di questa sezione è familiarizzare con l’uso di indici e cicli per la scansione dei dati[cite: 22].
Operazioni Fondamentali sui Vettori[cite: 21]:
- Stampa Indici: Tecnica per visualizzare ogni elemento preceduto dalla sua posizione (es. 0: 15, 1: 22)[cite: 23].
- Somma Selettiva: Algoritmi per sommare esclusivamente i numeri multipli di 3[cite: 24].
- Filtri e Soglie: Identificazione di quanti numeri in un set superano una determinata soglia X[cite: 26].
- Ottimizzazione: Calcolo della media escludendo i valori estremi (massimo e minimo) per una statistica più accurata[cite: 28].
2. Efficienza della Memoria: Generator Expression
Un concetto avanzato trattato nelle slide riguarda la differenza tra Generatori e Liste[cite: 99, 118].
| Caratteristica | Generatore | Lista |
|---|---|---|
| Memoria | Ottima (pochi byte) | Pesante (cresce con i dati) |
| Velocità | Istantanea | Lenta (calcola tutto subito) |
| Riutilizzo | No (si esaurisce) | Sì (infinita) |
L’uso di sum(x for x in vettore if x % 3 == 0) è più efficiente rispetto a una List Comprehension perché non crea una lista intermedia nella RAM[cite: 109, 110].
3. Introduzione alle Matrici
Le matrici in Python vengono modellate come liste di liste[cite: 121]. Il processo di creazione prevede:
- Inizializzazione di un contenitore principale
matrice = [][cite: 121]. - Utilizzo di cicli
forannidati per gestire righe e colonne[cite: 121, 122]. - Popolamento tramite il metodo
.append()[cite: 123].
Esercitazione Pratica
Mettiti alla prova con gli esercizi proposti[cite: 17, 124]:
- Crea una matrice 2×2 chiedendo i valori all’utente[cite: 124].
- Stampa la matrice riga per riga per verificarne la struttura[cite: 126].
