Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Indeksering med heltallsarrayer | Indeksering og Slicing
Numpy-Grunnleggende

Indeksering med heltallsarrayer

Sveip for å vise menyen

I tillegg til grunnleggende indeksering, hvor du bruker et heltall for en enkelt indeks, tillater NumPy også bruk av en hel 1D-array av heltall (en liste med heltall er også mulig) for indeksering.

Indeksering med heltallsarrayer i 1D-arrays

Hvert element i heltallsarrayen som brukes til indeksering behandles som en indeks, så for eksempel vil array[[0, 1, 3]] hente elementene på indeksene 0, 1 og 3 i form av en 1D-array, forutsatt at array selv er en 1D-array. Du kan også bruke NumPy-arrayer for indeksering, men det gjør koden mer omfattende.

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]])
1D-array heltallsindeksering

Heltallsindeksering i 2D-arrays

Når det gjelder 2D- og høyere-dimensjonale arrays, fungerer heltallsindeksering på samme måte som i 1D-arrays langs hver akse. Hvis du bruker kun én heltallsarray for indeksering, indekserer du kun langs én akse (akse 0). Hvis du bruker to arrays adskilt med komma, indekserer du langs begge aksene (akse 0 og akse 1).

Indeksering kun langs akse 0 ved bruk av en array med heltall returnerer en 2D-array. Når du får tilgang til elementer via slik indeksering, grupperes de i en ny array. Denne nye arrayen består av 1D-arrayer, og grupperingene øker dimensjonaliteten med én, noe som gir en 2D-array. Indeksering langs akse 0 og akse 1 ved bruk av to arrays med heltall returnerer en 1D-array.

Note
Merk

Alle heltallsarrayer som brukes for hver av aksene må ha samme form.

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]])
2D-array heltallsindeksering

Som du ser, kan du også kombinere grunnleggende heltallsindeksering og heltallsarray-indeksering.

Note
Merk

Igjen, hvis minst én av indeksene er utenfor gyldig område, kastes en IndexError.

Når det gjelder bruksområder, er slik indeksering nyttig når du trenger å velge bestemte elementer som ikke ligger ved siden av hverandre eller ikke følger en fast rekkefølge. I motsetning til slicing, som arbeider med sammenhengende intervaller, lar denne metoden deg velge nøyaktig hvilke elementer som skal hentes. Dette er nyttig når du vil trekke ut spredte data eller omorganisere verdier i en matrise.

1. Du analyserer månedlige salgsdata (i tusen) for fem produkter. Hva er output fra koden?

2. temperatures-arrayen representerer ukentlige temperaturer (i °C) for tre byer over mandag, tirsdag og onsdag. Velg riktig alternativ for å hente ut temperaturene for Berlin på mandag og tirsdag, samt Madrid på tirsdag.

question mark

Du analyserer månedlige salgsdata (i tusen) for fem produkter. Hva er output fra koden?

Velg det helt riktige svaret

question mark

temperatures-arrayen representerer ukentlige temperaturer (i °C) for tre byer over mandag, tirsdag og onsdag. Velg riktig alternativ for å hente ut temperaturene for Berlin på mandag og tirsdag, samt Madrid på tirsdag.

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 2. Kapittel 5
some-alt