Skivning i 2D-arrayer
Skivning i 2D och högre-dimensionella arrayer fungerar på liknande sätt som skivning i 1D-arrayer. Men i 2D-arrayer finns det två axlar.
Om vi vill utföra skivning endast på axel 0 för att hämta 1D-arrayer, förblir syntaxen densamma: array[start:end:step]
. Om vi vill utföra skivning på elementen i dessa 1D-arrayer (axel 1), är syntaxen följande: array[start:end:step, start:end:step]
. I huvudsak motsvarar antalet skivor antalet dimensioner i en array.
Dessutom kan vi använda skivning för en axel och grundläggande indexering för den andra axeln. Låt oss titta på ett exempel på 2D-skivning (lila rutor representerar elementen som hämtas från skivning, och den svarta pilen indikerar att elementen tas i omvänd ordning):
import numpy as np array_2d = np.array([ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ]) print(array_2d[1:]) print(array_2d[:, 0]) print(array_2d[1:, 1:-1]) print(array_2d[:-1, ::2]) print(array_2d[2, ::-1])
Bilden nedan visar strukturen för student_scores
-arrayen som används i uppgiften:
Swipe to start coding
Du arbetar med en 2D NumPy-array som representerar poängen för tre studenter i tre olika ämnen. Poängen för varje student lagras i en separat rad, där varje element representerar poängen i ett specifikt ämne.
-
Skapa en skiva av
student_scores
som inkluderar de sista två poängen för den första studenten (första raden). -
Använd grundläggande indexering (positiv indexering) och skivning, specificera endast en positiv
start
.
Lösning
Tack för dina kommentarer!