Multidimensionell Indexering
Nu när du kan komma åt element i 1D-arrayer är det dags att lära sig om indexering i högre dimensionella arrayer.
2D-arrayer indexering
Detta är en 2x3
array, vilket betyder att den består av 2
1D-arrayer längs axel 0, och var och en av dessa 1D-arrayer har 3
element längs axel 1.
Bilderna nedan kommer att klargöra positiv och negativ indexering i 2D-arrayer (arrayvärden visas i svart, och index visas i grönt för positiva index och rött för negativa index):
Åtkomst till element i 2D-arrayer
I 1D-arrayer åtkom vi element genom att ange indexet för elementet i hakparenteser. Om vi gör samma sak i 2D-arrayer hämtar vi en 1D-array vid det angivna indexet, vilket kan vara precis vad vi behöver.
Men om vi vill hämta ett särskilt element i en inre 1D-array, bör vi ange indexet för 1D-arrayen (längs axel 0) och indexet för dess element (längs axel 1), t.ex. array[0, 1]
. Vi kan också skriva array[0][1]
som vi gör med Python list
, men detta är mindre effektivt eftersom det utför sökningen två gånger för varje index istället för en gång.
Notera
Om ett angivet index är utanför gränserna kastas ett
IndexError
, så var försiktig med 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])
Bilden nedan visar strukturen för stock_prices
-arrayen som används i uppgiften:
Swipe to start coding
stock_prices
innehåller simulerade aktiekurser över fem dagar för fem olika företag. Varje rad motsvarar ett visst företag, och varje kolumn motsvarar en viss dag. Följaktligen representerar varje element i matrisen stängningskursen för ett visst företags aktie på en given dag.
-
Hämta alla aktiekurser för det första företaget över fem dagar med hjälp av positiv indexering.
-
Hämta aktiekursen för det tredje företaget på den andra dagen med hjälp av positiv indexering.
-
Hämta aktiekursen för det sista företaget på den sista dagen med hjälp av negativ indexering.
Lösning
Tack för dina kommentarer!