Fetta
Slicing in Python si riferisce al recupero di elementi da un indice a un altro all'interno di una sequenza. In questo capitolo, tuttavia, ci concentreremo sullo slicing negli array di NumPy.
Slicing in Array 1D
La sintassi generale per lo slicing negli array 1D è la seguente: array[start:end:step]
.
start
è l'indice a cui iniziare lo slicing;end
è l'indice a cui termina lo slicing (l'indice stesso non è incluso);step
specifica gli incrementi tra gli indici (il valore predefinito è1
).
Ecco un esempio per chiarire tutto (i quadrati viola rappresentano gli elementi recuperati dallo slicing):
Nota
Poiché non abbiamo specificato esplicitamente
step
, assume un valore predefinito di1
.
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the element at index 2 to the element at index 4 exclusive print(array[2:4]) # Slicing from the first element to the element at index 5 exclusive print(array[:5]) # Slicing from the element at index 5 to the last element inclusive print(array[5:])
Omettere Inizio, Fine e Passo
Come puoi vedere, possiamo spesso omettere start
, end
, step
, o anche tutti contemporaneamente. Ad esempio, step
può essere omesso quando vogliamo che sia uguale a 1
. start
e end
possono essere omessi nei seguenti scenari:
Omettere
start
:Slicing dal primo elemento (
step
è positivo);Slicing dall'ultimo elemento (
step
è negativo).
Omettere
end
:Slicing fino all'ultimo elemento incluso (
step
è positivo);Slicing fino al primo elemento incluso (
step
è negativo).
Diamo un'occhiata a qualche altro esempio (la freccia nera indica che gli elementi sono presi in ordine inverso):
import numpy as np array = np.array([5, 10, 2, 8, 9, 1, 0, 4]) print(f'Initial array: {array}') # Slicing from the first element to the last element inclusive with step=2 print(array[::2]) # Slicing from the element at index 4 to the element at index 2 exclusive (step=-1) print(array[4:2:-1]) # Slicing from the last element to the first element inclusive (reversed array) print(array[::-1]) # Slicing from the first element to the last inclusive (the same as our array) print(array[:])
L'immagine qui sotto mostra la struttura dell'array weekly_sales
utilizzato nel compito:
Swipe to start coding
Stai analizzando i dati di vendita giornalieri di un piccolo negozio al dettaglio. Le vendite della settimana passata sono memorizzate nell'array weekly_sales
, con ogni elemento che rappresenta le vendite di un giorno specifico.
-
Crea una slice di
weekly_sales
che includa i dati di vendita per ogni secondo giorno, a partire dal secondo giorno (martedì). -
Usa un indice positivo per l'
start
e lasciaend
non specificato. -
Memorizza il risultato in
alternate_day_sales
.
Soluzione
Grazie per i tuoi commenti!