Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Viipalointi | Indeksointi ja Viipalointi
Numpy Perusteet
Osio 2. Luku 3
single

single

bookViipalointi

Pyyhkäise näyttääksesi valikon

Viipalointi Pythonissa tarkoittaa alkioiden hakemista yhdestä indeksistä toiseen sekvenssissä. Tässä luvussa keskitytään kuitenkin viipalointiin NumPy-taulukoissa.

Viipalointi 1D-taulukoissa

Yleinen syntaksi viipaloinnille 1D-taulukoissa on seuraava: array[start:end:step].

  • start on indeksi, josta viipalointi alkaa;
  • end on indeksi, johon viipalointi päättyy (itse indeksiä ei oteta mukaan);
  • step määrittää indeksien väliset askeleet (oletuksena 1).

Tässä esimerkki, joka havainnollistaa kaiken (violetit ruudut kuvaavat viipaloinnilla haettuja alkioita):

Note
Huomio

Koska emme määritelleet step-arvoa erikseen, sen oletusarvo on 1.

123456789
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:])
copy

Alun, lopun ja askeleen jättäminen pois

Kuten huomaat, voimme usein jättää pois start-, end-, step- tai jopa kaikki nämä arvot samanaikaisesti. Esimerkiksi step voidaan jättää pois, kun haluamme sen olevan 1. start ja end voidaan jättää pois seuraavissa tilanteissa:

  1. start pois jätettynä:
    • Viipalointi ensimmäisestä alkiosta alkaen (step on positiivinen);
    • Viipalointi viimeisestä alkiosta alkaen (step on negatiivinen).
  2. end pois jätettynä:
    • Viipalointi viimeiseen alkioon asti mukaan lukien (step on positiivinen);
    • Viipalointi ensimmäiseen alkioon asti mukaan lukien (step on negatiivinen).

Tarkastellaan vielä muutamia esimerkkejä ( musta nuoli osoittaa, että alkiot otetaan käänteisessä järjestyksessä):

1234567891011
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[:])
copy

Alla oleva kuva esittää tehtävässä käytetyn weekly_sales-taulukon rakenteen:

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Analysoit pienen vähittäiskaupan päivittäisiä myyntitietoja. Viikon myyntiluvut on tallennettu taulukkoon weekly_sales, jossa jokainen alkio edustaa tietyn päivän myyntiä.

  1. Luo viipale weekly_sales-taulukosta, joka sisältää joka toisen päivän myyntitiedot alkaen toisesta päivästä (tiistaista).
  2. Käytä positiivista indeksiä start-arvona ja jätä end määrittelemättä.
  3. Tallenna tulos muuttujaan alternate_day_sales.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt