NumPy Cheat Sheet
Il sistema NumPy è un’estensione di calcolo numerico open-source per Python. Questo strumento può essere utilizzato per memorizzare ed elaborare grandi matrici, il che è molto più efficiente della struttura di liste nidificate propria di Python (che può anche essere utilizzata per rappresentare le matrici).
Spiegazione
Usa arr per rappresentare un oggetto array numpy.
Importare il modulo
import numpy as npImportare/Esportare
| np.loadtxt(‘file.txt’) | Leggi da un file di testo |
| np.genfromtxt(‘file.csv’,delimiter=’,’) | Leggi da un file CSV |
| np.savetxt(‘file.txt’,arr,delimiter=’ ‘) | Scrivi in un file di testo |
| np.savetxt(‘file.csv’,arr,delimiter=’,’) | Scrivi in un file CSV |
Creare un array
| np.array([1,2,3]) | Array 1D |
| np.array([(1,2,3),(4,5,6)]) | Array 2D |
| np.zeros(3) | Array 1D di lunghezza 3 con soli zeri |
| np.ones((3,4)) | Array 3x4 con tutti i valori a 1 |
| np.eye(5) | Array 5x5 con 1 sulla diagonale e 0 altrove (matrice identità) |
| np.linspace(0,100,6) | Array di 6 valori equispaziati 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 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 |
Ispezionare le 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 di np.eye |
Copiare/Ordinare/Rimodellare
| 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 dell’array |
| two_d_arr.flatten() | Trasforma l’array 2D in un array 1D |
| arr.T | Traspone l’array (le righe diventano colonne e viceversa) |
| arr.reshape(3,4) | Rimodella l’array in 3 righe e 4 colonne senza modificare i dati |
| arr.resize((5,6)) | Cambia la forma dell’array in 5x6 e riempie i nuovi valori con 0 |
Aggiungere/Rimuovere elementi
| np.append(arr,values) | Aggiunge valori alla fine di arr |
| np.insert(arr,2,values) | Inserisce valori nell’array 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 |
Combinare/Dividere
| 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 l’array in 3 sotto-array |
| np.hsplit(arr,5) | Divide l’array 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 (su un array 2D: restituisce le righe 0,1,2) |
| arr[0:3,4] | Restituisce gli elementi sulle righe 0,1,2 alla colonna 4 |
| arr[:2] | Restituisce gli elementi agli indici 0,1 (su un array 2D: restituisce le righe 0,1) |
| arr[:,1] | Restituisce gli elementi all’indice 1 in 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) | Aggiungi 1 a ogni elemento dell’array |
| np.subtract(arr,2) | Sottrai 2 da ogni elemento dell’array |
| np.multiply(arr,3) | Moltiplica ogni elemento dell’array per 3 |
| np.divide(arr,4) | Dividi ogni elemento dell’array per 4 (restituisce np.nan per la divisione per zero) |
| np.power(arr,5) | Eleva ogni elemento dell’array alla 5ª potenza |
Matematica vettoriale
| np.add(arr1,arr2) | Somma arr2 a arr1 elemento per elemento |
| np.subtract(arr1,arr2) | Sottrai arr2 da arr1 elemento per elemento |
| np.multiply(arr1,arr2) | Moltiplica arr1 per arr2 elemento per elemento |
| np.divide(arr1,arr2) | Dividi arr1 per arr2 elemento per elemento |
| np.power(arr1,arr2) | Eleva gli elementi di arr1 alla potenza degli elementi di arr2 |
| np.array_equal(arr1,arr2) | Restituisce True se gli array hanno gli stessi elementi e forma |
| np.sqrt(arr) | Radice quadrata di ogni elemento nell’array |
| np.sin(arr) | Seno di ogni elemento nell’array |
| np.log(arr) | Logaritmo naturale di ogni elemento nell’array |
| np.abs(arr) | Valore assoluto di ogni 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 |