Indexeren met Gehele Getallenarrays
Naast de basisindexering, waarbij een geheel getal wordt gebruikt voor een enkele index, staat NumPy ons ook toe om een volledige 1D-array van gehele getallen (een lijst van gehele getallen is ook mogelijk) te gebruiken voor indexering.
Indexering met gehele getallen in 1D-arrays
Elk element van de gehele getallenarray die voor indexering wordt gebruikt, wordt behandeld als een index. Bijvoorbeeld, array[[0, 1, 3]] haalt de elementen op bij de indices 0, 1 en 3 in de vorm van een 1D-array, ervan uitgaande dat array zelf een 1D-array is. Je kunt ook NumPy-arrays gebruiken voor indexering, maar dit maakt de code lastiger.
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]])
Integer-array-indexering in 1D-arrays
Bij 2D- en hoger-dimensionale arrays werkt integer-array-indexering op dezelfde manier als bij 1D-arrays langs elke as. Als we slechts één integer-array gebruiken voor indexering, indexeren we alleen langs één as (as 0). Als we twee arrays gebruiken, gescheiden door een komma, indexeren we langs beide assen (as 0 en as 1).
Indexeren alleen langs as 0 met een array van gehele getallen levert een 2D-array op. Wanneer we elementen op deze manier benaderen, worden ze gegroepeerd in een nieuwe array. Deze nieuwe array bestaat uit 1D-arrays, en door deze groepering neemt de dimensionaliteit met één toe, wat resulteert in een 2D-array.
Indexeren langs as 0 en as 1 met twee arrays van gehele getallen levert een 1D-array op.
Alle integer-arrays die voor elke as worden gebruikt, moeten dezelfde vorm hebben.
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]])
Zoals je kunt zien, kunnen we ook basis-integer-indexering en integer-array-indexering combineren.
Opnieuw geldt dat als ten minste één van de indexen buiten het bereik valt, er een IndexError wordt opgegooid.
Wat betreft toepassingen: dergelijke indexering is nuttig wanneer specifieke elementen geselecteerd moeten worden die niet naast elkaar liggen of geen regelmatig patroon volgen. In tegenstelling tot slicing, dat werkt met aaneengesloten reeksen, kun je met deze methode precies bepalen welke elementen je wilt ophalen. Dit is handig wanneer verspreide data moet worden geëxtraheerd of waarden in een array herschikt moeten worden.
1. Je analyseert de maandelijkse verkoopgegevens (in duizenden) voor vijf producten. Wat is de uitvoer van de code?
2. De array temperatures geeft de wekelijkse temperaturen (in °C) weer van drie steden op maandag, dinsdag en woensdag. Selecteer de juiste optie om de temperaturen van Berlijn op maandag en dinsdag, en Madrid op dinsdag op te halen.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 3.7
Indexeren met Gehele Getallenarrays
Veeg om het menu te tonen
Naast de basisindexering, waarbij een geheel getal wordt gebruikt voor een enkele index, staat NumPy ons ook toe om een volledige 1D-array van gehele getallen (een lijst van gehele getallen is ook mogelijk) te gebruiken voor indexering.
Indexering met gehele getallen in 1D-arrays
Elk element van de gehele getallenarray die voor indexering wordt gebruikt, wordt behandeld als een index. Bijvoorbeeld, array[[0, 1, 3]] haalt de elementen op bij de indices 0, 1 en 3 in de vorm van een 1D-array, ervan uitgaande dat array zelf een 1D-array is. Je kunt ook NumPy-arrays gebruiken voor indexering, maar dit maakt de code lastiger.
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]])
Integer-array-indexering in 1D-arrays
Bij 2D- en hoger-dimensionale arrays werkt integer-array-indexering op dezelfde manier als bij 1D-arrays langs elke as. Als we slechts één integer-array gebruiken voor indexering, indexeren we alleen langs één as (as 0). Als we twee arrays gebruiken, gescheiden door een komma, indexeren we langs beide assen (as 0 en as 1).
Indexeren alleen langs as 0 met een array van gehele getallen levert een 2D-array op. Wanneer we elementen op deze manier benaderen, worden ze gegroepeerd in een nieuwe array. Deze nieuwe array bestaat uit 1D-arrays, en door deze groepering neemt de dimensionaliteit met één toe, wat resulteert in een 2D-array.
Indexeren langs as 0 en as 1 met twee arrays van gehele getallen levert een 1D-array op.
Alle integer-arrays die voor elke as worden gebruikt, moeten dezelfde vorm hebben.
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]])
Zoals je kunt zien, kunnen we ook basis-integer-indexering en integer-array-indexering combineren.
Opnieuw geldt dat als ten minste één van de indexen buiten het bereik valt, er een IndexError wordt opgegooid.
Wat betreft toepassingen: dergelijke indexering is nuttig wanneer specifieke elementen geselecteerd moeten worden die niet naast elkaar liggen of geen regelmatig patroon volgen. In tegenstelling tot slicing, dat werkt met aaneengesloten reeksen, kun je met deze methode precies bepalen welke elementen je wilt ophalen. Dit is handig wanneer verspreide data moet worden geëxtraheerd of waarden in een array herschikt moeten worden.
1. Je analyseert de maandelijkse verkoopgegevens (in duizenden) voor vijf producten. Wat is de uitvoer van de code?
2. De array temperatures geeft de wekelijkse temperaturen (in °C) weer van drie steden op maandag, dinsdag en woensdag. Selecteer de juiste optie om de temperaturen van Berlijn op maandag en dinsdag, en Madrid op dinsdag op te halen.
Bedankt voor je feedback!