Skivning
Skivning i Python avser att hämta element från ett index till ett annat inom en sekvens. I det här kapitlet kommer vi dock att fokusera på skivning i NumPy-arrayer.
Skivning i 1D-arrayer
Den allmänna syntaxen för skivning i 1D-arrayer är följande: array[start:end:step]
.
start
är indexet där skivningen börjar;end
är indexet där skivningen slutar (indexet i sig är inte inkluderat);step
specificerar stegen mellan indexen (standard är1
).
Här är ett exempel för att klargöra allt (lila rutor representerar elementen som hämtas från skivning):
Notera
Eftersom vi inte uttryckligen angav
step
, är standardvärdet1
.
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:])
Utelämna Start, Slut och Steg
Som du kan se kan vi ofta utelämna start
, end
, step
eller till och med alla samtidigt. Till exempel kan step
utelämnas när vi vill att det ska vara lika med 1
. start
och end
kan utelämnas i följande scenarier:
Utelämna
start
:Skiva från det första elementet (
step
är positiv);Skiva från det sista elementet (
step
är negativ).
Utelämna
end
:Skiva till det sista elementet inklusive (
step
är positiv);Skiva till det första elementet inklusive (
step
är negativ).
Låt oss titta på några fler exempel (den svarta pilen indikerar att elementen tas i omvänd ordning):
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[:])
Bilden nedan visar strukturen för weekly_sales
-arrayen som används i uppgiften:
Swipe to start coding
Du analyserar den dagliga försäljningsdatan för en liten detaljhandelsbutik. Försäljningen för den senaste veckan är lagrad i weekly_sales
arrayen, där varje element representerar försäljningen för en specifik dag.
-
Skapa en skiva av
weekly_sales
som inkluderar försäljningsdatan för varannan dag, med start från den andra dagen (tisdag). -
Använd ett positivt index för
start
och lämnaend
ospecificerat. -
Spara resultatet i
alternate_day_sales
.
Lösning
Tack för dina kommentarer!