Indeksering med Heltallsarrayer
I tillegg til grunnleggende indeksering, hvor vi bruker et heltall for en enkelt indeks, tillater NumPy oss også å bruke et helt 1D-array av heltall (en liste med heltall er også mulig) for indeksering.
Indeksering med heltallsarrayer i 1D-arrays
Hvert element i heltallsarrayet 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 et 1D-array, forutsatt at array selv er et 1D-array. Du kan også bruke NumPy-arrayer for indeksering, men det gjør koden mer omfattende.
12345678import 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]])
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 bruk av en array med heltall returnerer en 2D-array. Når vi får tilgang til elementer via slik indeksering, grupperes de i en ny array. Denne nye arrayen består av 1D-arrayer, og gruppering øker dimensjonaliteten med én, noe som resulterer i en 2D-array.
Indeksering langs akse 0 og akse 1 ved bruk av to arrays med heltall returnerer en 1D-array.
Alle heltallsarrayer brukt for hver av aksene må ha samme form.
123456789101112131415import 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]])
Som du ser, kan vi også kombinere grunnleggende heltallsindeksering og heltallsarray-indeksering.
Igjen, hvis minst én av indeksene er utenfor gyldig område, kastes det 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 ut. Dette er nyttig når du ønsker å trekke ut spredte data eller omorganisere verdier i en matrise.
1. Du analyserer månedlige salgsdata (i tusen) for fem produkter. Hva er utdataene fra koden?
2. Arrayet temperatures 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, og Madrid på tirsdag.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Indeksering 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 et helt 1D-array av heltall (en liste med heltall er også mulig) for indeksering.
Indeksering med heltallsarrayer i 1D-arrays
Hvert element i heltallsarrayet 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 et 1D-array, forutsatt at array selv er et 1D-array. Du kan også bruke NumPy-arrayer for indeksering, men det gjør koden mer omfattende.
12345678import 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]])
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 bruk av en array med heltall returnerer en 2D-array. Når vi får tilgang til elementer via slik indeksering, grupperes de i en ny array. Denne nye arrayen består av 1D-arrayer, og gruppering øker dimensjonaliteten med én, noe som resulterer i en 2D-array.
Indeksering langs akse 0 og akse 1 ved bruk av to arrays med heltall returnerer en 1D-array.
Alle heltallsarrayer brukt for hver av aksene må ha samme form.
123456789101112131415import 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]])
Som du ser, kan vi også kombinere grunnleggende heltallsindeksering og heltallsarray-indeksering.
Igjen, hvis minst én av indeksene er utenfor gyldig område, kastes det 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 ut. Dette er nyttig når du ønsker å trekke ut spredte data eller omorganisere verdier i en matrise.
1. Du analyserer månedlige salgsdata (i tusen) for fem produkter. Hva er utdataene fra koden?
2. Arrayet temperatures 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, og Madrid på tirsdag.
Takk for tilbakemeldingene dine!