Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Indexering med Heltalsmatriser | Indexering och Skivning
Ultimata NumPy

bookIndexering med Heltalsmatriser

Förutom grundläggande indexering, där ett heltal används för ett enskilt index, tillåter NumPy även att en hel 1D-array av heltal (en lista av heltal är också möjlig) används för indexering.

Indexering med heltalsarrayer i 1D-arrayer

Varje element i heltalsarrayen som används för indexering behandlas som ett index, så till exempel hämtar array[[0, 1, 3]] elementen vid index 0, 1 och 3 i form av en 1D-array, förutsatt att array själv är en 1D-array. Det går även att använda NumPy-arrayer för indexering, men det gör koden mer omständlig.

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

Heltalsindexering i 1D-arrayer

När det gäller 2D- och högre-dimensionella arrayer fungerar heltalsindexering på samma sätt som i 1D-arrayer längs varje axel. Om vi använder endast en heltalsarray för indexering, indexerar vi endast längs en axel (axel 0). Om vi använder två arrayer separerade med ett kommatecken, indexerar vi längs båda axlarna (axel 0 och axel 1).

Indexering endast längs axel 0 med en array av heltal returnerar en 2D-array. När vi hämtar element via sådan indexering grupperas de i en ny array. Denna nya array består av 1D-arrayer, och gruppering ökar dimensionaliteten med ett, vilket resulterar i en 2D-array.

Indexering längs axel 0 och axel 1 med två arrayer av heltal returnerar en 1D-array.

Note
Notera

Alla heltalsarrayer som används för varje axel måste ha samma 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 kan se kan vi också kombinera grundläggande heltalsindexering och heltalsvektorindexering.

Note
Notering

Återigen, om minst ett av indexen är utanför gränserna kastas ett IndexError.

När det gäller tillämpningar är sådan indexering användbar när du behöver välja specifika element som inte ligger intill varandra eller inte följer en regelbunden ordning. Till skillnad från slicing, som arbetar med kontinuerliga intervall, låter denna metod dig välja exakt vilka element som ska hämtas. Det är användbart när du vill extrahera utspridda data eller omorganisera värden i en array.

1. Du analyserar månatliga försäljningsdata (i tusental) för fem produkter. Vad blir utmatningen av koden?

2. Arrayen temperatures representerar veckotemperaturerna (i °C) för tre städer under måndag, tisdag och onsdag. Välj det korrekta alternativet för att hämta temperaturerna för Berlin på måndag och tisdag samt Madrid på tisdag.

question mark

Du analyserar månatliga försäljningsdata (i tusental) för fem produkter. Vad blir utmatningen av koden?

Select the correct answer

question mark

Arrayen temperatures representerar veckotemperaturerna (i °C) för tre städer under måndag, tisdag och onsdag. Välj det korrekta alternativet för att hämta temperaturerna för Berlin på måndag och tisdag samt Madrid på tisdag.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 3.7

bookIndexering med Heltalsmatriser

Svep för att visa menyn

Förutom grundläggande indexering, där ett heltal används för ett enskilt index, tillåter NumPy även att en hel 1D-array av heltal (en lista av heltal är också möjlig) används för indexering.

Indexering med heltalsarrayer i 1D-arrayer

Varje element i heltalsarrayen som används för indexering behandlas som ett index, så till exempel hämtar array[[0, 1, 3]] elementen vid index 0, 1 och 3 i form av en 1D-array, förutsatt att array själv är en 1D-array. Det går även att använda NumPy-arrayer för indexering, men det gör koden mer omständlig.

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

Heltalsindexering i 1D-arrayer

När det gäller 2D- och högre-dimensionella arrayer fungerar heltalsindexering på samma sätt som i 1D-arrayer längs varje axel. Om vi använder endast en heltalsarray för indexering, indexerar vi endast längs en axel (axel 0). Om vi använder två arrayer separerade med ett kommatecken, indexerar vi längs båda axlarna (axel 0 och axel 1).

Indexering endast längs axel 0 med en array av heltal returnerar en 2D-array. När vi hämtar element via sådan indexering grupperas de i en ny array. Denna nya array består av 1D-arrayer, och gruppering ökar dimensionaliteten med ett, vilket resulterar i en 2D-array.

Indexering längs axel 0 och axel 1 med två arrayer av heltal returnerar en 1D-array.

Note
Notera

Alla heltalsarrayer som används för varje axel måste ha samma 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 kan se kan vi också kombinera grundläggande heltalsindexering och heltalsvektorindexering.

Note
Notering

Återigen, om minst ett av indexen är utanför gränserna kastas ett IndexError.

När det gäller tillämpningar är sådan indexering användbar när du behöver välja specifika element som inte ligger intill varandra eller inte följer en regelbunden ordning. Till skillnad från slicing, som arbetar med kontinuerliga intervall, låter denna metod dig välja exakt vilka element som ska hämtas. Det är användbart när du vill extrahera utspridda data eller omorganisera värden i en array.

1. Du analyserar månatliga försäljningsdata (i tusental) för fem produkter. Vad blir utmatningen av koden?

2. Arrayen temperatures representerar veckotemperaturerna (i °C) för tre städer under måndag, tisdag och onsdag. Välj det korrekta alternativet för att hämta temperaturerna för Berlin på måndag och tisdag samt Madrid på tisdag.

question mark

Du analyserar månatliga försäljningsdata (i tusental) för fem produkter. Vad blir utmatningen av koden?

Select the correct answer

question mark

Arrayen temperatures representerar veckotemperaturerna (i °C) för tre städer under måndag, tisdag och onsdag. Välj det korrekta alternativet för att hämta temperaturerna för Berlin på måndag och tisdag samt Madrid på tisdag.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5
some-alt