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
Lopullinen NumPy

Pyyhkäise näyttääksesi valikon

book
Taulukoiden Litistäminen

Tasoitus tarkoittaa taulukon muuttamista moniulotteisesta taulukosta 1D-taulukoksi, käytännössä sen sisällön purkamista.

Tämä operaatio on hyödyllinen, kun sinun täytyy käsitellä taulukon elementtejä yksi kerrallaan tai kun haluat tehdä datasta sopivampaa tietyille algoritmeille.

NumPy:ssä on kolme mahdollista vaihtoehtoa tasoittamiseen:

  • 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 jatkuvan tasoitetun taulukon, jossa on sama määrä elementtejä.

Kuten olemme jo maininneet edellisessä luvussa, -1 laskee automaattisesti ulottuvuuden koon alkuperäisen taulukon koon perusteella. Koska annamme vain yhden kokonaisluvun shape:lle, palautetaan 1D-taulukko, jossa on sama määrä elementtejä.

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()-menetelmä tai vastaava funktio palauttaa alkuperäisen taulukon näkymän, joten kaikki muutokset, jotka tehdään uudelleenmuotoiltuun taulukkoon, vaikuttavat myös alkuperäiseen taulukkoon.

Käyttämällä flattened_array = np.reshape(array_2d, -1) voidaan käyttää sen sijaan, että kutsutaan menetelmää.

ravel()

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

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

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

Huomautus

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

Tehtävä

Swipe to start coding

  1. Käytä .flatten() metodia oikein exam_scores-taulukon litistämiseen ja tallenna tulos exam_scores_flattened.

  2. Käytä .reshape() metodia oikein exam_scores-taulukon litistämiseen ja tallenna tulos exam_scores_reshaped.

  3. Käytä .ravel() metodia exam_scores-taulukon litistämiseen ja tallenna tulos exam_scores_raveled.

  4. Valitse kolmesta luodusta litistetystä taulukosta se, joka on alkuperäisen taulukon kopio, ei näkymä, ja aseta sen ensimmäiseksi elementiksi 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
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?

Kysy tekoälyä

expand
ChatGPT

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

book
Taulukoiden Litistäminen

Tasoitus tarkoittaa taulukon muuttamista moniulotteisesta taulukosta 1D-taulukoksi, käytännössä sen sisällön purkamista.

Tämä operaatio on hyödyllinen, kun sinun täytyy käsitellä taulukon elementtejä yksi kerrallaan tai kun haluat tehdä datasta sopivampaa tietyille algoritmeille.

NumPy:ssä on kolme mahdollista vaihtoehtoa tasoittamiseen:

  • 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 jatkuvan tasoitetun taulukon, jossa on sama määrä elementtejä.

Kuten olemme jo maininneet edellisessä luvussa, -1 laskee automaattisesti ulottuvuuden koon alkuperäisen taulukon koon perusteella. Koska annamme vain yhden kokonaisluvun shape:lle, palautetaan 1D-taulukko, jossa on sama määrä elementtejä.

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()-menetelmä tai vastaava funktio palauttaa alkuperäisen taulukon näkymän, joten kaikki muutokset, jotka tehdään uudelleenmuotoiltuun taulukkoon, vaikuttavat myös alkuperäiseen taulukkoon.

Käyttämällä flattened_array = np.reshape(array_2d, -1) voidaan käyttää sen sijaan, että kutsutaan menetelmää.

ravel()

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

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

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

Huomautus

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

Tehtävä

Swipe to start coding

  1. Käytä .flatten() metodia oikein exam_scores-taulukon litistämiseen ja tallenna tulos exam_scores_flattened.

  2. Käytä .reshape() metodia oikein exam_scores-taulukon litistämiseen ja tallenna tulos exam_scores_reshaped.

  3. Käytä .ravel() metodia exam_scores-taulukon litistämiseen ja tallenna tulos exam_scores_raveled.

  4. Valitse kolmesta luodusta litistetystä taulukosta se, joka on alkuperäisen taulukon kopio, ei näkymä, ja aseta sen ensimmäiseksi elementiksi 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
Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt