
NumPy
NumPy è una libreria di Python che ti permette di lavorare facilmente con numeri e dati in formato tabellare, come se fossero tabelle o matrici.
A cosa serve questo modulo? Pensa a NumPy come a un modulo (libreria) che ti permette di creare degli array, fare calcoli matriciali, e generare liste molto più veloci e potenti. E' molto utile averla a disposizione su Python, soprattutto quando hai a che fare con grandi quantità di dati.
Per capire bene la potenza di questa libreria, immagina questo scenario.
Hai una lista di numeri e vuoi sommare 5 a ciascuno di essi. Con le liste normali di Python dovresti fare un ciclo "for" e aggiungere 5 a ogni elemento.
Con NumPy, invece, puoi farlo in una sola riga e senza cicli. Ecco un esempio:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = a + 5 # b diventa [6, 7, 8, 9, 10]
Come vedi, è molto più semplice.
Inoltre, NumPy è scritto in linguaggio C e Fortran sotto il cofano, il che significa che le operazioni su array sono estremamente molto più veloci rispetto alle liste normali di Python.
NumPy è la base di molte altre librerie scientifiche e di machine learning come Pandas (per l’analisi dati), SciPy (per il calcolo scientifico avanzato), Matplotlib (per grafici), e TensorFlow (per il machine learning). Quindi, se impari NumPy, sei già a buon punto per esplorare molti altri strumenti potenti in Python!
Ma non è solo questo. NumPy ti permette di fare molto di più.
Cosa puoi fare usando NumPy
Alcune cose utili che puoi fare con NumPy:
- Creare array di numeri
Vuoi creare una lista di numeri da 0 a 9? Facile!a = np.arange(10) # a diventa [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- Fare calcoli matematici complessi
Puoi moltiplicare, dividere, fare medie o calcolare radici quadrate di interi array di numeri in un colpo solo.a = np.array([1, 4, 9, 16])
radici = np.sqrt(a) # radici diventa [1, 2, 3, 4] - Lavorare con array multidimensionali
NumPy ti permette di lavorare non solo con liste, ma anche con tabelle (o array bidimensionali) come matrici e tensori. È come avere a disposizione fogli di calcolo, ma molto più potenti.matrice = np.array([[1, 2], [3, 4]])
- Operazioni Matriciali
Se hai mai lavorato con matrici in algebra lineare, NumPy ti permette di fare operazioni tra matrici in modo davvero semplice. Puoi moltiplicarle, trasporle, e calcolare il determinante o l'inversa senza complicazioni.a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
risultato = np.dot(a, b) # Moltiplica le matrici a e b - Generare array di numeri casuali
Hai bisogno di generare numeri casuali? NumPy ha una sezione chiamata `random` che ti permette di creare array con numeri casuali distribuiti in vari modi. Ad esempio, crea una matrice 3x3 di numeri casuali tra 0 e 1numeri_casuali = np.random.rand(3, 3)
- Funzioni di statistica
Se devi fare calcoli statistici, NumPy è perfetto. Puoi calcolare facilmente la media, la deviazione standard, il massimo e il minimo in pochi passaggi.dati = np.array([10, 20, 30, 40, 50])
media = np.mean(dati) # Calcola la media
dev_std = np.std(dati) # Calcola la deviazione standard - Slicing e mascheramento sugli array
Con NumPy puoi lavorare su parti di array molto facilmente tramite lo slicing. Puoi anche filtrare i dati usando condizioni, cioè selezionare solo gli elementi che rispettano certi criteri. Ad esempio, seleziona solo i numeri dal secondo al quartoa = np.array([1, 2, 3, 4, 5, 6])
Ecco un esempio di mascheramento che restituisce solo i valori maggiori di 3 presenti in un array
sotto_array = a[1:4] # output: [2, 3, 4]a = np.array([1, 2, 3, 4, 5, 6])
filtro = a[a > 3] # output: [4, 5, 6] - Reshape (riorganizzare la forma degli array)
Un'altra funzione fantastica è la possibilità di "rimodellare" un array, cioè trasformare un array piatto (monodimensionale) in una matrice o un array di dimensioni diverse, a patto che il numero di elementi rimanga lo stesso.a = np.arange(12) # Crea un array con i numeri da 0 a 11
a_reshape = a.reshape(3, 4) # Trasforma l'array in una matrice 3x4 - Calcolo di derivate e integrali numerici
Se lavori con funzioni matematiche complesse, puoi usare NumPy per approssimare derivate e integrali. Sebbene per questo si utilizzino librerie più specifiche come SciPy, NumPy ha già delle funzioni che ti permettono di fare delle stime rapide. Ecco un esempio di derivata approssimata:x = np.linspace(0, 10, 100) # Crea 100 valori tra 0 e 10
y = np.sin(x) # Calcola il seno di ciascun valore di x
dy_dx = np.gradient(y, x) # Approssima la derivata - Funzioni Universali (ufunc)
Le ufunc sono funzioni che vengono applicate elemento per elemento a un array. Puoi usarle per operazioni matematiche come seno, coseno, logaritmo, esponenziale, ecc.a = np.array([0, np.pi/2, np.pi])
seno = np.sin(a) # Applica la funzione seno a ciascun elemento dell'array
In pratica, NumPy è la tua scelta se vuoi lavorare con numeri e dati in modo veloce, senza troppi giri di codice.
E soprattutto, è perfetto per fare tutto ciò che riguarda calcoli matematici, analisi dati, e lavorare con matrici, grafici, e molto altro ancora.
Quindi, se stai pensando di fare analisi dati o machine learning, imparare a usare NumPy è davvero un passo fondamentale.
Come installare NumPy su Python
Installare NumPy su Python è molto semplice e puoi farlo direttamente dalla tua linea di comando o dal terminale.
Se hai già installato Python, probabilmente hai anche pip installato (il gestore di pacchetti di Python).
Quindi, per installare NumPy ti basta digitare questo comando nel terminale:
pip install numpy
Questo comando scaricherà e installerà l'ultima versione di NumPy.
Se stai usando Anaconda, che è una distribuzione di Python molto popolare per chi lavora con la scienza dei dati e il machine learning, puoi installare NumPy con conda. Apri il terminale o il prompt dei comandi di Anaconda e digita:
conda install numpy
Questo comando installerà NumPy all'interno dell'ambiente di Anaconda.
Dopo aver installato NumPy, puoi verificare se l'installazione è andata a buon fine aprendo un'interfaccia Python (come una console Python, Jupyter Notebook, o un file `.py`) e scrivendo:
import numpy as np
print(np.__version__)
1.21.5
Se non ci sono errori e il terminale ti restituisce la versione di NumPy, significa che l'installazione è avvenuta correttamente!
Se invece l'installazione è fallita, fai questi controlli
- La tua versione di Python è compatibile con NumPy?
Assicurati di avere una versione di Python supportata da NumPy. Solitamente una versione Python 3.x. - Il comando pip è installato sul tuo computer?
Se ricevi un errore in cui pip non viene riconosciuto, potrebbe essere necessario aggiungere Python e pip alla variabile d'ambiente PATH del tuo sistema. In alternativa, prova a usare `python -m pip install numpy`.
Al termine dell'installazione sei pronto per iniziare a usare NumPy nel tuo codice Python tramite l'istruzione import o from import.
Come utilizzare la libreria NumPy
Dopo aver installato NumPy, ci sono due principali modalità di importazione che puoi usare a seconda delle tue esigenze:
A] Importare l'intera libreria
Puoi importare la libreria NumPy tramite il comando import. E' il modo più comune e ti dà accesso a tutte le funzionalità di NumPy.
import numpy as np
Questo comando importa l'intera libreria NumPy e, per convenzione, utilizza l'abbreviazione `np` per accedere alle sue funzioni.
Questo significa che ogni volta che usi una funzione di NumPy, devi scrivere `np` prima della funzione.
a = np.array([1, 2, 3])
b = np.sin(a)
print(b)
Questo codice calcola il valore del seno su tutti i valori dell'array
[0.84147098 0.90929743 0.14112001]
Il comando import è consigliato se prevedi di usare molte funzionalità di NumPy.
B] Importare solo funzioni specifiche
Se hai bisogno solo di alcune funzionalità di NumPy, puoi importare solo le funzioni o classi che ti interessano tramite l'istruzione from import risparmiando memoria e migliorando la leggibilità del codice. Ecco come fare:
from numpy import array, sin
In questo caso, puoi usare direttamente le funzioni importate senza dover anteporre `np`.
Ad esempio, puoi scrivere il codice come segue:
from numpy import array, sin
a = array([1, 2, 3])
b = sin(a)
print(b)
[0.84147098 0.90929743 0.14112001]
Questo comando è utile quando vuoi importare solo alcune funzioni specifiche, magari in script piccoli o se vuoi evitare di sovrascrivere funzioni con lo stesso nome da altre librerie.
In entrambi i casi, sarai pronto per utilizzare le potenti funzioni di NumPy nel tuo codice!
Ricorda che devi fare l'import della libreria NumPy (o di qualsiasi altra libreria) una sola volta all'inizio del tuo script o del blocco di codice, oppure quando apri una sessione sul terminale. Una volta che hai importato NumPy, puoi utilizzarlo in tutto il codice o in quella sessione senza bisogno di importarlo di nuovo.
Ora sai tutto ciò che è necessario sapere per iniziare a lavorare con NumPy.