Schema riassuntivo NumPy
NumPy è un’estensione per il calcolo numerico open-source per Python. Questo strumento può essere utilizzato per memorizzare ed elaborare matrici di grandi dimensioni, in modo molto più efficiente rispetto alla struttura di liste nidificate (nested list) nativa di Python (che può comunque essere utilizzata per rappresentare matrici).
Spiegazione
Usa arr per rappresentare un oggetto array NumPy.
Importazione dei moduli
import numpy as npImportazione/Esportazione
| np.loadtxt(‘file.txt’) | Leggi da file di testo |
| np.genfromtxt(‘file.csv’,delimiter=’,’) | Leggi da file CSV |
| np.savetxt(‘file.txt’,arr,delimiter=’ ‘) | Scrivi su file di testo |
| np.savetxt(‘file.csv’,arr,delimiter=’,’) | Scrivi su file CSV |
Creazione degli array
| np.array([1,2,3]) | Array unidimensionale |
| np.array([(1,2,3),(4,5,6)]) | Array bidimensionale |
| np.zeros(3) | Array unidimensionale di lunghezza 3 con tutti zeri |
| np.ones((3,4)) | Array 3x4 con tutti uno |
| np.eye(5) | Matrice identità 5x5 (1 sulla diagonale, 0 altrove) |
| np.linspace(0,100,6) | Array di 6 valori da 0 a 100 |
| np.arange(0,10,3) | Array di valori da 0 a meno di 10 con passo 3 (es: [0,3,6,9]) |
| np.full((2,3),8) | Array 2x3 con tutti i valori impostati a 8 |
| np.random.rand(4,5) | Array 4x5 di float casuali tra 0-1 |
| np.random.rand(6,7)*100 | Array 6x7 di float casuali tra 0-100 |
| np.random.randint(5,size=(2,3)) | Array 2x3 con interi casuali tra 0-4 |
Ispezione delle proprietà
| arr.size | Restituisce il numero totale di elementi nell’array |
| arr.shape | Restituisce le dimensioni dell’array |
| arr.dtype | Restituisce il tipo degli elementi nell’array |
| arr.astype(dtype) | Converte il tipo degli elementi dell’array in dtype |
| arr.tolist() | Converte l’array in una lista |
| np.info(np.eye) | Visualizza la documentazione per np.eye |
Copia/Ordinamento/Rimodellamento
| np.copy(arr) | Copia arr in una nuova memoria |
| arr.view(dtype) | Crea una vista degli elementi di arr con tipo dtype |
| arr.sort() | Ordina arr |
| arr.sort(axis=0) | Ordina un asse specifico di arr |
| two_d_arr.flatten() | Trasforma l’array 2D two_d_arr in 1D |
| arr.T | Traspone arr (le righe diventano colonne e viceversa) |
| arr.reshape(3,4) | Rimodella arr in 3 righe, 4 colonne senza modificare i dati |
| arr.resize((5,6)) | Modifica la forma di arr in 5x6 e riempie i nuovi valori con 0 |
Aggiunta/Rimozione di elementi
| np.append(arr,values) | Aggiunge values alla fine di arr |
| np.insert(arr,2,values) | Inserisce values in arr prima dell’indice 2 |
| np.delete(arr,3,axis=0) | Elimina la riga all’indice 3 di arr |
| np.delete(arr,4,axis=1) | Elimina la colonna all’indice 4 di arr |
Combinazione/Divisione
| np.concatenate((arr1,arr2),axis=0) | Aggiunge arr2 come righe alla fine di arr1 |
| np.concatenate((arr1,arr2),axis=1) | Aggiunge arr2 come colonne alla fine di arr1 |
| np.split(arr,3) | Divide arr in 3 sotto-array |
| np.hsplit(arr,5) | Divide arr orizzontalmente al 5° indice |
Indicizzazione/Slicing/Sottoinsiemi
| arr[5] | Restituisce l’elemento all’indice 5 |
| arr[2,5] | Restituisce l’elemento dell’array 2D all’indice [2][5] |
| arr[1]=4 | Assegna all’elemento dell’array all’indice 1 il valore 4 |
| arr[1,3]=10 | Assegna all’elemento dell’array all’indice [1][3] il valore 10 |
| arr[0:3] | Restituisce gli elementi agli indici 0,1,2 (In 2D: restituisce le righe 0,1,2) |
| arr[0:3,4] | Restituisce gli elementi nelle righe 0,1,2 alla colonna 4 |
| arr[:2] | Restituisce gli elementi agli indici 0,1 (In 2D: restituisce le righe 0,1) |
| arr[:,1] | Restituisce gli elementi all’indice 1 su tutte le righe |
| arr<5 | Restituisce un array con valori booleani |
| (arr1<3) & (arr2>5) | Restituisce un array con valori booleani |
| ~arr | Inverte un array booleano |
| arr[arr<5] | Restituisce gli elementi dell’array minori di 5 |
Matematica scalare
| np.add(arr,1) | Aggiunge 1 a ciascun elemento dell’array |
| np.subtract(arr,2) | Sottrae 2 da ciascun elemento dell’array |
| np.multiply(arr,3) | Moltiplica ciascun elemento dell’array per 3 |
| np.divide(arr,4) | Divide ciascun elemento per 4 (restituisce np.nan per divisione per zero) |
| np.power(arr,5) | Eleva ciascun elemento dell’array alla 5a potenza |
Matematica vettoriale
| np.add(arr1,arr2) | Somma elemento per elemento arr2 ad arr1 |
| np.subtract(arr1,arr2) | Sottrae elemento per elemento arr2 da arr1 |
| np.multiply(arr1,arr2) | Moltiplica elemento per elemento arr1 per arr2 |
| np.divide(arr1,arr2) | Divide elemento per elemento arr1 per arr2 |
| np.power(arr1,arr2) | Eleva elemento per elemento arr1 alla potenza di arr2 |
| np.array_equal(arr1,arr2) | Restituisce True se gli array hanno gli stessi elementi e forma |
| np.sqrt(arr) | Radice quadrata di ciascun elemento nell’array |
| np.sin(arr) | Seno di ciascun elemento nell’array |
| np.log(arr) | Logaritmo naturale di ciascun elemento nell’array |
| np.abs(arr) | Valore assoluto di ciascun elemento nell’array |
| np.ceil(arr) | Arrotonda per eccesso all’intero più vicino |
| np.floor(arr) | Arrotonda per difetto all’intero più vicino |
| np.round(arr) | Arrotonda all’intero più vicino |
Statistiche
| np.mean(arr,axis=0) | Restituisce la media lungo un asse specifico |
| arr.sum() | Restituisce la somma di arr |
| arr.min() | Restituisce il valore minimo di arr |
| arr.max(axis=0) | Restituisce il valore massimo di un asse specifico |
| np.var(arr) | Restituisce la varianza dell’array |
| np.std(arr,axis=1) | Restituisce la deviazione standard di un asse specifico |
| arr.corrcoef() | Restituisce il coefficiente di correlazione dell’array |