Multidimensionaal Indexeren
Nu je in staat bent om elementen in 1D-arrays te benaderen, is het tijd om te leren over indexering in hoger-dimensionale arrays.
2D Arrays Indexering
Dit is een 2x3
array, wat betekent dat het bestaat uit 2
1D-arrays langs as 0, en elk van deze 1D-arrays heeft 3
elementen langs as 1.
De onderstaande afbeeldingen zullen positieve en negatieve indexering in 2D-arrays verduidelijken (arraywaarden worden weergegeven in zwart, en indices worden weergegeven in groen voor positieve indices en rood voor negatieve indices):
Toegang tot Elementen in 2D Arrays
In 1D-arrays hebben we toegang tot elementen door de index van het element in vierkante haken te specificeren. Als we hetzelfde doen in 2D-arrays, halen we een 1D-array op bij de gespecificeerde index, wat precies kan zijn wat we nodig hebben.
Als we echter een bepaald element van een interne 1D-array willen ophalen, moeten we de index van de 1D-array (langs as 0) en de index van het element (langs as 1) specificeren, bijvoorbeeld array[0, 1]
. We zouden ook array[0][1]
kunnen schrijven zoals we doen met Python list
, maar dit is minder efficiënt omdat het de zoekopdracht tweemaal uitvoert voor elke index in plaats van eenmaal.
Opmerking
Als een gespecificeerde index buiten bereik is, wordt een
IndexError
gegooid, dus wees daar voorzichtig mee.
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) # Accessing the first element (1D array) with positive index print(array_2d[0]) # Accessing the second element of the first 1D array with positive index print(array_2d[0, 1]) # Accessing the last element of the last 1D array with negative index print(array_2d[-1, -1])
De onderstaande afbeelding toont de structuur van de stock_prices
array die in de taak wordt gebruikt:
Swipe to start coding
stock_prices
bevat gesimuleerde aandelenkoersen over vijf dagen voor vijf verschillende bedrijven. Elke rij komt overeen met een bepaald bedrijf, en elke kolom komt overeen met een bepaalde dag. Bijgevolg vertegenwoordigt elk element in de matrix de slotkoers van een bepaald bedrijf op een gegeven dag.
-
Haal alle aandelenkoersen van het eerste bedrijf over vijf dagen op met behulp van positieve indexering.
-
Haal de aandelenkoers van het derde bedrijf op de tweede dag op met behulp van positieve indexering.
-
Haal de aandelenkoers van het laatste bedrijf op de laatste dag op met behulp van negatieve indexering.
Oplossing
Bedankt voor je feedback!