Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Kokonaislukutaulukon Indeksointi | Indeksointi ja Viipalointi
Ultimate NumPy

bookKokonaislukutaulukon Indeksointi

Perusindeksoinnin lisäksi, jossa käytetään yksittäistä kokonaislukua indeksinä, NumPy mahdollistaa myös kokonaisen yksiulotteisen kokonaislukutaulukon (myös kokonaislukulista käy) käyttämisen indeksointiin.

Kokonaislukutaulukon indeksointi yksiulotteisissa taulukoissa

Jokainen indeksointiin käytetyn kokonaislukutaulukon alkio tulkitaan indeksiksi, joten esimerkiksi array[[0, 1, 3]] hakee alkiot indekseistä 0, 1 ja 3 yksiulotteisena taulukkona, olettaen että array on yksiulotteinen taulukko. Myös NumPy-taulukkoa voi käyttää indeksointiin, mutta se tekee koodista monimutkaisempaa.

12345678
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]])
copy

Kokonaislukutaulukoiden indeksointi 1D-taulukoissa

Kaksidimensioisissa ja korkeamman ulottuvuuden taulukoissa kokonaislukutaulukoiden indeksointi toimii samalla tavalla kuin 1D-taulukoissa jokaisella akselilla. Jos käytetään vain yhtä kokonaislukutaulukkoa indeksointiin, indeksointi tapahtuu vain yhdellä akselilla (akseli 0). Jos käytetään kahta taulukkoa erotettuna pilkulla, indeksointi tapahtuu molemmilla akseleilla (akseli 0 ja akseli 1).

Indeksointi vain akselilla 0 kokonaislukutaulukon avulla palauttaa 2D-taulukon. Kun elementtejä haetaan tällaisella indeksoinnilla, ne ryhmitellään uuteen taulukkoon. Tämä uusi taulukko koostuu 1D-taulukoista, ja ryhmittely kasvattaa ulottuvuuden yhdellä, jolloin tuloksena on 2D-taulukko.

Indeksointi sekä akselilla 0 että akselilla 1 kahden kokonaislukutaulukon avulla palauttaa 1D-taulukon.

Note
Huomio

Kaikkien akseleilla käytettyjen kokonaislukutaulukoiden on oltava samanmuotoisia.

123456789101112131415
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]])
copy

Kuten huomaat, voimme myös yhdistää perus kokonaislukujen indeksoinnin ja kokonaisluku-taulukkoindeksoinnin.

Note
Huomautus

Jos vähintään yksi indekseistä on sallitun alueen ulkopuolella, heitetään IndexError.

Sovelluksista puhuttaessa tällainen indeksointi on hyödyllistä, kun täytyy valita tiettyjä alkioita, jotka eivät ole vierekkäin tai eivät noudata säännöllistä järjestystä. Toisin kuin viipalointi, joka toimii yhtenäisillä alueilla, tämä menetelmä mahdollistaa tarkalleen haluttujen alkioiden valitsemisen. Se on hyödyllistä, kun haluat poimia hajanaista dataa tai järjestellä taulukon arvoja uudelleen.

1. Analysoit viiden tuotteen kuukausittaista myyntidataa (tuhansina). Mikä on koodin tuloste?

2. temperatures-taulukko esittää kolmen kaupungin viikon lämpötilat (°C) maanantaina, tiistaina ja keskiviikkona. Valitse oikea vaihtoehto hakeaksesi Berliinin lämpötilat maanantaina ja tiistaina sekä Madridin lämpötila tiistaina.

question mark

Analysoit viiden tuotteen kuukausittaista myyntidataa (tuhansina). Mikä on koodin tuloste?

Select the correct answer

question mark

temperatures-taulukko esittää kolmen kaupungin viikon lämpötilat (°C) maanantaina, tiistaina ja keskiviikkona. Valitse oikea vaihtoehto hakeaksesi Berliinin lämpötilat maanantaina ja tiistaina sekä Madridin lämpötila tiistaina.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain how negative indices work with integer array indexing?

What happens if the arrays used for indexing have different lengths?

Can you give more examples of combining basic and integer array indexing?

Awesome!

Completion rate improved to 3.7

bookKokonaislukutaulukon Indeksointi

Pyyhkäise näyttääksesi valikon

Perusindeksoinnin lisäksi, jossa käytetään yksittäistä kokonaislukua indeksinä, NumPy mahdollistaa myös kokonaisen yksiulotteisen kokonaislukutaulukon (myös kokonaislukulista käy) käyttämisen indeksointiin.

Kokonaislukutaulukon indeksointi yksiulotteisissa taulukoissa

Jokainen indeksointiin käytetyn kokonaislukutaulukon alkio tulkitaan indeksiksi, joten esimerkiksi array[[0, 1, 3]] hakee alkiot indekseistä 0, 1 ja 3 yksiulotteisena taulukkona, olettaen että array on yksiulotteinen taulukko. Myös NumPy-taulukkoa voi käyttää indeksointiin, mutta se tekee koodista monimutkaisempaa.

12345678
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]])
copy

Kokonaislukutaulukoiden indeksointi 1D-taulukoissa

Kaksidimensioisissa ja korkeamman ulottuvuuden taulukoissa kokonaislukutaulukoiden indeksointi toimii samalla tavalla kuin 1D-taulukoissa jokaisella akselilla. Jos käytetään vain yhtä kokonaislukutaulukkoa indeksointiin, indeksointi tapahtuu vain yhdellä akselilla (akseli 0). Jos käytetään kahta taulukkoa erotettuna pilkulla, indeksointi tapahtuu molemmilla akseleilla (akseli 0 ja akseli 1).

Indeksointi vain akselilla 0 kokonaislukutaulukon avulla palauttaa 2D-taulukon. Kun elementtejä haetaan tällaisella indeksoinnilla, ne ryhmitellään uuteen taulukkoon. Tämä uusi taulukko koostuu 1D-taulukoista, ja ryhmittely kasvattaa ulottuvuuden yhdellä, jolloin tuloksena on 2D-taulukko.

Indeksointi sekä akselilla 0 että akselilla 1 kahden kokonaislukutaulukon avulla palauttaa 1D-taulukon.

Note
Huomio

Kaikkien akseleilla käytettyjen kokonaislukutaulukoiden on oltava samanmuotoisia.

123456789101112131415
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]])
copy

Kuten huomaat, voimme myös yhdistää perus kokonaislukujen indeksoinnin ja kokonaisluku-taulukkoindeksoinnin.

Note
Huomautus

Jos vähintään yksi indekseistä on sallitun alueen ulkopuolella, heitetään IndexError.

Sovelluksista puhuttaessa tällainen indeksointi on hyödyllistä, kun täytyy valita tiettyjä alkioita, jotka eivät ole vierekkäin tai eivät noudata säännöllistä järjestystä. Toisin kuin viipalointi, joka toimii yhtenäisillä alueilla, tämä menetelmä mahdollistaa tarkalleen haluttujen alkioiden valitsemisen. Se on hyödyllistä, kun haluat poimia hajanaista dataa tai järjestellä taulukon arvoja uudelleen.

1. Analysoit viiden tuotteen kuukausittaista myyntidataa (tuhansina). Mikä on koodin tuloste?

2. temperatures-taulukko esittää kolmen kaupungin viikon lämpötilat (°C) maanantaina, tiistaina ja keskiviikkona. Valitse oikea vaihtoehto hakeaksesi Berliinin lämpötilat maanantaina ja tiistaina sekä Madridin lämpötila tiistaina.

question mark

Analysoit viiden tuotteen kuukausittaista myyntidataa (tuhansina). Mikä on koodin tuloste?

Select the correct answer

question mark

temperatures-taulukko esittää kolmen kaupungin viikon lämpötilat (°C) maanantaina, tiistaina ja keskiviikkona. Valitse oikea vaihtoehto hakeaksesi Berliinin lämpötilat maanantaina ja tiistaina sekä Madridin lämpötila tiistaina.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5
some-alt