Skæring
Slicing i Python refererer til at hente elementer fra en indeks til en anden inden for en sekvens. I dette kapitel vil vi dog fokusere på slicing i NumPy arrays.
Slicing i 1D Arrays
Den generelle syntaks for slicing i 1D arrays er som følger: array[start:end:step]
.
start
er indekset, hvor slicing skal starte;end
er indekset, hvor slicing slutter (indekset selv er ikke inkluderet);step
specificerer intervallerne mellem indeksene (standard er1
).
Her er et eksempel for at tydeliggøre alt (lilla firkanter repræsenterer de elementer, der hentes fra slicing):
Bemærk
Da vi ikke eksplicit angav
step
, er standardværdien1
.
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:])
Udeladelse af Start, Slut og Step
Som du kan se, kan vi ofte udelade start
, end
, step
eller endda alle på samme tid. For eksempel kan step
udelades, når vi ønsker, at det skal være lig med 1
. start
og end
kan udelades i følgende scenarier:
Udeladelse af
start
:Slicing fra det første element (
step
er positiv);Slicing fra det sidste element (
step
er negativ).
Udeladelse af
end
:Slicing til det sidste element inklusive (
step
er positiv);Slicing til det første element inklusive (
step
er negativ).
Lad os se på et par flere eksempler (den sorte pil indikerer, at elementerne tages i omvendt rækkefølge):
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[:])
Billedet nedenfor viser strukturen af weekly_sales
arrayet brugt i opgaven:
Swipe to start coding
Du analyserer de daglige salgsdata for en lille detailbutik. Salget for den sidste uge er gemt i weekly_sales
arrayet, hvor hvert element repræsenterer salget for en specifik dag.
-
Opret et udsnit af
weekly_sales
, der inkluderer salgsdataene for hver anden dag, startende fra anden dag (tirsdag). -
Brug en positiv indeks for
start
og ladend
være uspecificeret. -
Gem resultatet i
alternate_day_sales
.
Løsning
Tak for dine kommentarer!