Skjæring i 2D-arrayer
Slicing i 2D og høyere-dimensjonale matriser fungerer på samme måte som slicing i 1D-arrays. Imidlertid er det to akser i 2D-arrays.
Hvis vi ønsker å utføre slicing kun på akse 0 for å hente 1D-arrays, forblir syntaksen den samme: array[start:end:step]
. Hvis vi ønsker å utføre slicing på elementene i disse 1D-arrays (akse 1), er syntaksen som følger: array[start:end:step, start:end:step]
. I hovedsak tilsvarer antall slices antall dimensjoner i en matrise.
Videre kan vi bruke slicing for én akse og grunnleggende indeksering for den andre aksen. La oss se på et eksempel på 2D-slicing (lilla firkanter representerer elementene hentet fra slicing, og den svarte pilen indikerer at elementene tas i omvendt rekkefølge):
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])
Bildet nedenfor viser strukturen til student_scores
-arrayet som brukes i oppgaven:
Swipe to start coding
Du jobber med en 2D NumPy-array som representerer poengene til tre studenter i tre forskjellige fag. Poengene for hver student er lagret i en egen rad, med hvert element som representerer poenget i et spesifikt fag.
-
Lag et utsnitt av
student_scores
som inkluderer de to siste poengene til den første studenten (første rad). -
Bruk grunnleggende indeksering (positiv indeksering) og utsnitt, og spesifiser kun en positiv
start
.
Løsning
Takk for tilbakemeldingene dine!