Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Viipalointi 2D Arrayssa | Indeksointi ja Viipalointi
Lopullinen NumPy

book
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])
1234567891011
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])
copy

Alla oleva kuva näyttää tehtävässä käytetyn student_scores taulukon rakenteen:

Tehtävä

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ä.

  1. Luo student_scores-taulukosta viipale, joka sisältää ensimmäisen opiskelijan (ensimmäinen rivi) kaksi viimeistä pistettä.

  2. Käytä perusindeksointia (positiivinen indeksointi) ja viipalointia, määrittäen vain positiivinen start.

Ratkaisu

import numpy as np
# Scores of three students in three subjects
student_scores = np.array([[85, 92, 78], [88, 75, 83], [90, 88, 91]])
# Create a slice of student_scores with the scores of the first student in the last two subjects
first_student_last_two_scores = student_scores[0, 1:]
print(first_student_last_two_scores)

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 4
single

single

import numpy as np
# Scores of three students in three subjects
student_scores = np.array([[85, 92, 78], [88, 75, 83], [90, 88, 91]])
# Create a slice of student_scores with the scores of the first student in the last two subjects
first_student_last_two_scores = ___
print(first_student_last_two_scores)

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt