Kurssisisältö
Lopullinen NumPy
Lopullinen NumPy
Kokonaislukutaulukon Indeksointi
Perusindeksoinnin lisäksi, jossa käytämme kokonaislukua yksittäisenä indeksinä, NumPy sallii myös käyttää kokonaisia 1D kokonaislukutaulukoita (myös kokonaislukulista on mahdollinen) indeksointiin.
Kokonaislukutaulukkoindeksointi 1D-taulukoissa
Jokainen indeksointiin käytetyn kokonaislukutaulukon elementti käsitellään indeksinä, joten esimerkiksi array[[0, 1, 3]]
hakee elementit indekseistä 0
, 1
ja 3
1D-taulukon muodossa, olettaen että array
on itse 1D-taulukko. Voit myös käyttää NumPy-taulukoita indeksointiin, mutta se tekee koodista hankalampaa.
import numpy as np array = np.array([23, 41, 7, 80, 3]) # Retrieving elements at indices 0, 1 and 3 print(array[[0, 1, 3]]) # Retrieving elements at indices 1, -1 and 2 in this order print(array[[1, -1, 2]]) # IndexError is thrown since index 5 is out of bounds print(array[[2, 5]])
Kokonaislukutaulukkoindeksointi 1D-taulukoissa
Puhuttaessa 2D- ja korkeamman ulottuvuuden taulukoista, kokonaislukutaulukkoindeksointi toimii samalla tavalla kuin 1D-taulukoissa jokaisella akselilla. Jos käytämme vain yhtä kokonaislukutaulukkoa indeksointiin, indeksoimme vain yhdellä akselilla (akseli 0). Jos käytämme kahta taulukkoa pilkulla erotettuna, indeksoimme molemmilla akseleilla (akseli 0 ja akseli 1).
Indeksointi vain akselilla 0 käyttäen kokonaislukutaulukkoa palauttaa 2D-taulukon. Kun pääsemme käsiksi elementteihin tällaisen indeksoinnin kautta, ryhmittelemme ne uuteen taulukkoon. Tämä uusi taulukko koostuu 1D-taulukoista, ja niiden ryhmittely lisää ulottuvuutta yhdellä, mikä johtaa 2D-taulukkoon.
Indeksointi akselilla 0 ja akselilla 1 käyttäen kahta kokonaislukutaulukkoa palauttaa 1D-taulukon.
Huomautus
Kaikkien kunkin akselin indeksointiin käytettyjen kokonaislukutaulukoiden on oltava saman muotoisia.
import numpy as np array_2d = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) # Retrieving first and the third row print(array_2d[[0, 2]]) # Retrieving the main diagonal elements print(array_2d[[0, 1, 2], [0, 1, 2]]) # Retrieving the first and third element of the second row print(array_2d[1, [0, 2]]) # IndexError is thrown, since index 3 along axis 0 is out of bounds print(array_2d[[0, 3], [0, 1]])
Kuten näet, voimme myös yhdistää perus kokonaislukuindeksoinnin ja kokonaislukutaulukkoindeksoinnin.
Huomautus
Jos vähintään yksi indekseistä on rajojen ulkopuolella, heitetään
IndexError
.
Sovelluksista puhuttaessa, tällainen indeksointi on hyödyllistä, kun sinun täytyy valita tietyt elementit, jotka eivät ole vierekkäin tai eivät noudata säännöllistä järjestystä. Toisin kuin viipalointi, joka toimii jatkuvilla alueilla, tämä menetelmä antaa sinun valita tarkalleen mitkä elementit noudetaan. Se on hyödyllistä, kun haluat poimia hajanaisia tietoja tai järjestää arvoja uudelleen taulukossa.
1. Analysoit viiden tuotteen kuukausittaista myyntidataa (tuhansina). Mikä on koodin tuloste?
2. temperatures
taulukko edustaa kolmen kaupungin viikoittaisia lämpötiloja (°C) maanantaina, tiistaina ja keskiviikkona. Valitse oikea vaihtoehto hakeaksesi Berliinin lämpötilat maanantaina ja tiistaina sekä Madridin tiistaina.
Kiitos palautteestasi!