Slicing di un array in NumPy
Un aspetto cruciale della gestione degli array NumPy è lo slicing, ovvero la capacità di selezionare porzioni specifiche di un array. In questa pagina, esploreremo in dettaglio cos'è lo slicing di un array NumPy, come funziona, e come puoi utilizzarlo per manipolare i tuoi dati in modo preciso e veloce.
Lo slicing è una tecnica che permette di estrarre un sottoinsieme degli elementi di un array. In NumPy, puoi utilizzare lo slicing per accedere a sezioni di un array utilizzando una sintassi molto semplice e intuitiva. Questa operazione è estremamente utile quando hai bisogno di manipolare solo una parte dei tuoi dati, piuttosto che lavorare con l'intero array.
In Python, l'operazione di slicing viene eseguita utilizzando i due punti : all'interno delle parentesi quadre. La sintassi generale è:
array[inizio:fine:passo]
dove:
inizio: l'indice dell'elemento da cui si vuole iniziare lo slicing (inclusivo).
fine: l'indice dell'elemento fino a cui si vuole eseguire lo slicing (esclusivo).
passo: l'intervallo tra gli indici selezionati. Questo parametro è opzionale e il valore predefinito è 1.
Esempi di slicing di array NumPy
Consideriamo un array NumPy unidimensionale (1D). Ecco un esempio di come applicare lo slicing:
import numpy as np
array = np.array([10, 20, 30, 40, 50])
sliced_array = array[1:4]
print(sliced_array) # [20 30 40]
In questo esempio, abbiamo estratto gli elementi dall'indice 1 all'indice 3 (l'indice 4 è escluso) dell'array originale.
Puoi anche specificare un passo per saltare alcuni elementi durante lo slicing:
import numpy as np
array = np.array([10, 20, 30, 40, 50])
sliced_array = array[0:5:2]
print(sliced_array) # [10 30 50]
Qui, abbiamo selezionato gli elementi dall'indice 0 all'indice 4, ma solo ogni secondo elemento grazie al passo di 2.
Quando lavori con array bidimensionali (2D) o multidimensionali, lo slicing diventa ancora più potente. Vediamo un esempio con un array 2D:
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sliced_array = array_2d[1:, 1:]
print(sliced_array)
'''
[[5 6]
[8 9]]
'''
Puoi anche estrarre una singola riga o colonna da un array 2D. Ad esempio, per selezionare la seconda riga:
import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
second_row = array_2d[1, :]
print(second_row) # [4 5 6]
Slicing con indici negativi
NumPy supporta anche lo slicing inverso, il che significa che puoi selezionare gli elementi partendo dalla fine dell'array utilizzando indici negativi:
import numpy as np
array = np.array([10, 20, 30, 40, 50])
reversed_array = array[::-1]
print(reversed_array) # [50 40 30 20 10]
In questo caso, [::-1] indica a NumPy di selezionare tutti gli elementi dell'array ma in ordine inverso.