Snijden
Slicing in Python verwijst naar het ophalen van elementen van de ene index naar de andere binnen een reeks. In dit hoofdstuk zullen we ons echter richten op slicing in NumPy arrays.
Slicing in 1D Arrays
De algemene syntaxis voor slicing in 1D arrays is als volgt: array[start:end:step]
.
start
is de index waarop het slicen begint;end
is de index waarop het slicen eindigt (de index zelf is niet inbegrepen);step
specificeert de stappen tussen de indices (standaard is1
).
Hier is een voorbeeld om alles te verduidelijken (paarse vierkanten vertegenwoordigen de elementen die worden opgehaald door slicing):
Opmerking
Omdat we
step
niet expliciet hebben gespecificeerd, is de standaardwaarde1
.
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:])
Start, Eind en Stap weglaten
Zoals je kunt zien, kunnen we vaak start
, end
, step
, of zelfs allemaal tegelijk weglaten. Bijvoorbeeld, step
kan worden weggelaten wanneer we willen dat het gelijk is aan 1
. start
en end
kunnen in de volgende scenario's worden weggelaten:
Weglaten van
start
:Slicing vanaf het eerste element (
step
is positief);Slicing vanaf het laatste element (
step
is negatief).
Weglaten van
end
:Slicing tot het laatste element inclusief (
step
is positief);Slicing tot het eerste element inclusief (
step
is negatief).
Laten we een paar meer voorbeelden bekijken (de zwarte pijl geeft aan dat de elementen in omgekeerde volgorde worden genomen):
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[:])
De onderstaande afbeelding toont de structuur van de weekly_sales
array die in de taak wordt gebruikt:
Swipe to start coding
Je analyseert de dagelijkse verkoopgegevens van een kleine winkel. De verkopen van de afgelopen week zijn opgeslagen in de weekly_sales
array, waarbij elk element de verkoop voor een specifieke dag vertegenwoordigt.
-
Maak een slice van
weekly_sales
die de verkoopgegevens voor elke tweede dag bevat, te beginnen vanaf de tweede dag (dinsdag). -
Gebruik een positieve index voor de
start
en laat deend
ongespecificeerd. -
Sla het resultaat op in
alternate_day_sales
.
Oplossing
Bedankt voor je feedback!