Viipalointi 2D Arrayssa
Leikkaaminen 2D- ja korkeamman ulottuvuuden taulukoissa toimii samalla tavalla kuin leikkaaminen 1D-taulukoissa. Kuitenkin 2D-taulukoissa on kaksi akselia.
Jos haluamme suorittaa leikkaamisen vain akselilla 0 saadaksemme 1D-taulukoita, syntaksi pysyy samana: array[start:end:step]
. Jos haluamme suorittaa leikkaamisen näiden 1D-taulukoiden elementeille (akseli 1), syntaksi on seuraava: array[start:end:step, start:end:step]
. Pohjimmiltaan leikkausten määrä vastaa taulukon ulottuvuuksien määrää.
Lisäksi voimme käyttää leikkaamista yhdelle akselille ja perusindeksointia toiselle akselille. Katsotaanpa esimerkkiä 2D-leikkaamisesta (violetit neliöt edustavat leikkaamisesta saatuja elementtejä, ja musta nuoli osoittaa, että elementit otetaan käänteisessä järjestyksessä):
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])
Alla oleva kuva näyttää tehtävässä käytetyn student_scores
taulukon rakenteen:
Swipe to start coding
Työskentelet 2D NumPy-taulukon kanssa, joka edustaa kolmen opiskelijan pisteitä kolmessa eri aineessa. Kunkin opiskelijan pisteet on tallennettu erilliseen riviin, ja kukin elementti edustaa tietyn aineen pistettä.
-
Luo
student_scores
-taulukosta viipale, joka sisältää ensimmäisen opiskelijan (ensimmäinen rivi) kaksi viimeistä pistettä. -
Käytä perusindeksointia (positiivinen indeksointi) ja viipalointia, määrittäen vain positiivinen
start
.
Ratkaisu
Kiitos palautteestasi!