Multidimensionel Indeksering
Nu hvor du er i stand til at få adgang til elementer i 1D-arrays, er det tid til at lære om indeksering i højere-dimensionelle arrays.
2D Arrays Indeksering
Dette er en 2x3
array, hvilket betyder, at den består af 2
1D arrays langs akse 0, og hver af disse 1D arrays har 3
elementer langs akse 1.
Billederne nedenfor vil tydeliggøre positiv og negativ indeksering i 2D arrays (arrayværdier vises i sort, og indekser vises i grøn for positive indekser og rød for negative indekser):
Adgang til elementer i 2D-arrays
I 1D-arrays tilgik vi elementer ved at specificere indekset for elementet i firkantede parenteser. Hvis vi gør det samme i 2D-arrays, henter vi en 1D-array ved det angivne indeks, hvilket kan være præcis det, vi har brug for.
Men hvis vi ønsker at hente et bestemt element af en indre 1D-array, skal vi specificere indekset for 1D-arrayen (langs akse 0) og indekset for dens element (langs akse 1), f.eks. array[0, 1]
. Vi kunne også skrive array[0][1]
som vi gør med Python list
, men dette er mindre effektivt, da det udfører søgningen to gange for hvert indeks i stedet for én gang.
Bemærk
Hvis et angivet indeks er uden for grænserne, kastes en
IndexError
, så vær opmærksom på det.
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])
Billedet nedenfor viser strukturen af stock_prices
arrayen brugt i opgaven:
Swipe to start coding
stock_prices
indeholder simulerede aktiekurser over fem dage for fem forskellige virksomheder. Hver række svarer til en bestemt virksomhed, og hver kolonne svarer til en bestemt dag. Derfor repræsenterer hvert element i matricen lukkekursen for en bestemt virksomheds aktie på en given dag.
-
Hent alle aktiekurserne for den første virksomhed over fem dage ved hjælp af positiv indeksering.
-
Hent aktiekursen for den tredje virksomhed på den anden dag ved hjælp af positiv indeksering.
-
Hent aktiekursen for den sidste virksomhed på den sidste dag ved hjælp af negativ indeksering.
Løsning
Tak for dine kommentarer!