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

bookIndeksering med heltallsarrayer

Sveip for å vise menyen

I tillegg til grunnleggende indeksering, hvor vi bruker et heltall for en enkelt indeks, tillater NumPy oss også å bruke 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]])
copy

Heltallsindeksering i 1D-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 vi bruker kun én heltallsarray for indeksering, indekserer vi kun langs én akse (akse 0). Hvis vi bruker to arrays adskilt med komma, indekserer vi langs begge aksene (akse 0 og akse 1).

Indeksering kun langs akse 0 ved å bruke en array av heltall returnerer en 2D-array. Når vi får tilgang til elementer via slik indeksering, grupperer vi dem 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 å bruke to arrays av 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]])
copy

Som du ser, kan vi 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 må 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 array.

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

2. Arrayet temperatures viser ukentlige temperaturer (i °C) for tre byer over mandag, tirsdag og onsdag. Velg det riktige alternativet for å hente ut temperaturene for Berlin på mandag og tirsdag, og Madrid på tirsdag.

question mark

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

Velg det helt riktige svaret

question mark

Arrayet temperatures viser ukentlige temperaturer (i °C) for tre byer over mandag, tirsdag og onsdag. Velg det riktige alternativet for å hente ut temperaturene for Berlin på mandag og tirsdag, og 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