Viipalointi
Viipalointi Pythonissa tarkoittaa elementtien hakemista yhdestä indeksistä toiseen sekvenssissä. Tässä luvussa keskitymme kuitenkin viipalointiin NumPy-taulukoissa.
Viipalointi 1D-taulukoissa
Yleinen syntaksi viipaloinnille 1D-taulukoissa on seuraava: array[start:end:step]
.
start
on indeksi, josta viipalointi aloitetaan;end
on indeksi, johon viipalointi päättyy (itse indeksiä ei sisällytetä);step
määrittää indeksien väliset lisäykset (oletus on1
).
Tässä on esimerkki, joka selventää kaiken (violetit ruudut edustavat viipaloinnista saatuja elementtejä):
Huom
Koska emme määrittäneet
step
-arvoa erikseen, se oletetaan arvoksi1
.
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:])
Alku-, Loppu- ja Askel-arvojen Jättäminen Pois
Kuten näet, voimme usein jättää pois start
, end
, step
tai jopa kaikki nämä samanaikaisesti. Esimerkiksi step
voidaan jättää pois, kun haluamme sen olevan yhtä kuin 1
. start
ja end
voidaan jättää pois seuraavissa tilanteissa:
start
-arvon jättäminen pois:Viipalointi ensimmäisestä elementistä (
step
on positiivinen);Viipalointi viimeisestä elementistä (
step
on negatiivinen).
end
-arvon jättäminen pois:Viipalointi viimeiseen elementtiin mukaan lukien (
step
on positiivinen);Viipalointi ensimmäiseen elementtiin mukaan lukien (
step
on negatiivinen).
Katsotaanpa muutamia esimerkkejä lisää (musta nuoli osoittaa, että elementit otetaan käänteisessä järjestyksessä):
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[:])
Alla oleva kuva näyttää tehtävässä käytetyn weekly_sales
taulukon rakenteen:
Swipe to start coding
Analysoit pienen vähittäiskaupan päivittäisiä myyntitietoja. Myynnit viime viikolta on tallennettu weekly_sales
-taulukkoon, jossa kukin alkio edustaa tietyn päivän myyntiä.
-
Luo
weekly_sales
-taulukosta viipale, joka sisältää myyntitiedot joka toiselta päivältä, alkaen toisesta päivästä (tiistai). -
Käytä positiivista indeksiä
start
-kohdassa ja jätäend
määrittelemättä. -
Tallenna tulos
alternate_day_sales
-muuttujaan.
Ratkaisu
Kiitos palautteestasi!