AD

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.