Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Taulukoiden Litistäminen | Yleisesti Käytetyt NumPy-Funktiot
Ultimate NumPy

bookTaulukoiden Litistäminen

Taulukon litistäminen tarkoittaa moniulotteisen taulukon muuntamista yksiulotteiseksi taulukoksi, eli sen sisällön purkamista suoraksi jonoksi.

Tämä operaatio on hyödyllinen, kun halutaan käsitellä taulukon alkioita yksi kerrallaan tai kun data halutaan muokata paremmin tiettyihin algoritmeihin sopivaksi.

NumPyssa taulukon litistämiseen on kolme vaihtoehtoa:

  • Käyttämällä ndarray.reshape(-1)-metodia tai numpy.reshape(array, -1)-funktiota;
  • Käyttämällä ndarray.ravel()-metodia tai numpy.ravel(array)-funktiota;
  • Käyttämällä ndarray.flatten()-metodia.

reshape(-1)

.reshape(-1)-metodi tai reshape(array, -1)-funktio palauttaa yhtenäisen litistetyn taulukon, jossa on sama määrä alkioita kuin alkuperäisessä taulukossa.

Kuten aiemmassa luvussa mainittiin, -1 laskee automaattisesti ulottuvuuden koon alkuperäisen taulukon koon perusteella. Koska annetaan vain yksi kokonaisluku shape-parametriksi, palautetaan yksiulotteinen taulukko, jossa on sama määrä alkioita.

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

.reshape()-metodi tai vastaava funktio palauttaa näkymän alkuperäisestä taulukosta, joten kaikki muutokset uudelleenmuotoiltuun taulukkoon vaikuttavat myös alkuperäiseen taulukkoon.

flattened_array = np.reshape(array_2d, -1) voidaan käyttää metodikutsun sijaan.

ravel()

ndarray.ravel()-metodi tai numpy.ravel(array)-funktio toimii samalla tavalla kuin reshape(-1) ja palauttaa myös näkymän alkuperäisestä taulukosta:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

flattened_array = np.ravel(array_2d) voidaan käyttää metodin kutsumisen sijaan.

ndarray.flatten()

Jos haluat kopion alkuperäisestä taulukosta, et näkymää, voit käyttää .flatten()-metodia:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
copy
Note
Huomio

Voit aina kopioida taulukon näkymän luodaksesi erillisen olion ja muokata tätä kopiota vaikuttamatta alkuperäiseen taulukkoon.

Tehtävä

Swipe to start coding

  1. Käytä .flatten()-metodia oikein litistääksesi exam_scores ja tallenna tulos muuttujaan exam_scores_flattened.
  2. Käytä .reshape()-metodia oikein litistääksesi exam_scores ja tallenna tulos muuttujaan exam_scores_reshaped.
  3. Käytä .ravel()-metodia litistääksesi exam_scores ja tallenna tulos muuttujaan exam_scores_raveled.
  4. Valitse kolmesta luodusta litistetystä taulukosta se, joka on kopio alkuperäisestä taulukosta (ei näkymä), ja aseta sen ensimmäiseksi alkioksi arvo 100 (käytä positiivista indeksointia).

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

close

Awesome!

Completion rate improved to 3.7

bookTaulukoiden Litistäminen

Pyyhkäise näyttääksesi valikon

Taulukon litistäminen tarkoittaa moniulotteisen taulukon muuntamista yksiulotteiseksi taulukoksi, eli sen sisällön purkamista suoraksi jonoksi.

Tämä operaatio on hyödyllinen, kun halutaan käsitellä taulukon alkioita yksi kerrallaan tai kun data halutaan muokata paremmin tiettyihin algoritmeihin sopivaksi.

NumPyssa taulukon litistämiseen on kolme vaihtoehtoa:

  • Käyttämällä ndarray.reshape(-1)-metodia tai numpy.reshape(array, -1)-funktiota;
  • Käyttämällä ndarray.ravel()-metodia tai numpy.ravel(array)-funktiota;
  • Käyttämällä ndarray.flatten()-metodia.

reshape(-1)

.reshape(-1)-metodi tai reshape(array, -1)-funktio palauttaa yhtenäisen litistetyn taulukon, jossa on sama määrä alkioita kuin alkuperäisessä taulukossa.

Kuten aiemmassa luvussa mainittiin, -1 laskee automaattisesti ulottuvuuden koon alkuperäisen taulukon koon perusteella. Koska annetaan vain yksi kokonaisluku shape-parametriksi, palautetaan yksiulotteinen taulukko, jossa on sama määrä alkioita.

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

.reshape()-metodi tai vastaava funktio palauttaa näkymän alkuperäisestä taulukosta, joten kaikki muutokset uudelleenmuotoiltuun taulukkoon vaikuttavat myös alkuperäiseen taulukkoon.

flattened_array = np.reshape(array_2d, -1) voidaan käyttää metodikutsun sijaan.

ravel()

ndarray.ravel()-metodi tai numpy.ravel(array)-funktio toimii samalla tavalla kuin reshape(-1) ja palauttaa myös näkymän alkuperäisestä taulukosta:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
copy

flattened_array = np.ravel(array_2d) voidaan käyttää metodin kutsumisen sijaan.

ndarray.flatten()

Jos haluat kopion alkuperäisestä taulukosta, et näkymää, voit käyttää .flatten()-metodia:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
copy
Note
Huomio

Voit aina kopioida taulukon näkymän luodaksesi erillisen olion ja muokata tätä kopiota vaikuttamatta alkuperäiseen taulukkoon.

Tehtävä

Swipe to start coding

  1. Käytä .flatten()-metodia oikein litistääksesi exam_scores ja tallenna tulos muuttujaan exam_scores_flattened.
  2. Käytä .reshape()-metodia oikein litistääksesi exam_scores ja tallenna tulos muuttujaan exam_scores_reshaped.
  3. Käytä .ravel()-metodia litistääksesi exam_scores ja tallenna tulos muuttujaan exam_scores_raveled.
  4. Valitse kolmesta luodusta litistetystä taulukosta se, joka on kopio alkuperäisestä taulukosta (ei näkymä), ja aseta sen ensimmäiseksi alkioksi arvo 100 (käytä positiivista indeksointia).

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5
single

single

some-alt