Slicing dell'array NumPy
Matrici per affettare
Affettare in Python significa prendere elementi da un dato indice a un altro dato indice.
Passiamo slice invece di index in questo modo: .[start:end]
Possiamo anche definire il passo, in questo modo: .[start:end:step]
Se non passiamo inizia è considerato 0
Se non passiamo, finisce la sua lunghezza considerata dell'array in quella dimensione
Se non superiamo il passaggio è considerato 1
Esempio
Taglia gli elementi dall'indice 1 all'indice 5 dalla seguente matrice:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5])
Nota: il risultato include l'indice iniziale, ma esclude l'indice finale.
Esempio
Taglia gli elementi dall'indice 4 alla fine dell'array:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[4:])
Esempio
Taglia gli elementi dall'inizio all'indice 4 (non incluso):
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[:4])
Affettatura negativa
Utilizzare l'operatore meno per fare riferimento a un indice dalla fine:
Esempio
Taglia dall'indice 3 dalla fine all'indice 1 dalla fine:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[-3:-1])
FARE UN PASSO
Utilizzare il step
valore per determinare la fase dell'affettatura:
Esempio
Restituisce ogni altro elemento dall'indice 1 all'indice 5:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[1:5:2])
Esempio
Restituisce ogni altro elemento dall'intero array:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
print(arr[::2])
Affettare array 2-D
Esempio
Dal secondo elemento, affetta gli elementi dall'indice 1 all'indice 4 (non incluso):
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[1, 1:4])
Nota: ricorda che il secondo elemento ha l'indice 1.
Esempio
Da entrambi gli elementi, restituisce l'indice 2:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[0:2, 2])
Esempio
Da entrambi gli elementi, affetta l'indice 1 nell'indice 4 (non incluso), questo restituirà un array 2-D:
import numpy as np
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[0:2, 1:4])