Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Taulukoiden Muotoilu Uudelleen | Yleisesti Käytetyt NumPy-Funktiot
Numpy Perusteet
Osio 3. Luku 4
single

single

bookTaulukoiden Muotoilu Uudelleen

Pyyhkäise näyttääksesi valikon

Taulukon muotoilu NumPyssa mahdollistaa taulukon muodon muuttamisen säilyttäen kaikki alkiot. Tämä on yleinen toimenpide koneoppimisessa, sillä monet koneoppimiskirjastojen funktiot ja metodit vaativat taulukoilta tietyn muodon.

Taulukon muodot

Note
Määritelmä

NumPy-taulukon muoto on tuple, joka ilmaisee alkioiden määrän jokaisella ulottuvuudella (akselilla).

Esimerkiksi 1D-taulukolla, jonka pituus on 5, on muoto (5,), kun taas 2D-taulukolla, jossa on 3 riviä ja 4 saraketta, on muoto (3, 4):

1234
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
copy

ndarray.reshape()

NumPy-taulukoilla on .reshape()-metodi muodon muuttamiseen. Tarvitsee vain antaa tulostaulukon muoto joko kokonaislukuna, kokonaislukujen tuplena tai kokonaisluvut erillisinä argumentteina.

Tämä metodi ei muuta taulukkoa paikan päällä, vaan palauttaa uuden taulukon.

Note
Huomautus

Itse asiassa .reshape() palauttaa alkuperäisen taulukon näkymän, joten kaikki muutokset uudelleenmuotoiltuun taulukkoon vaikuttavat myös alkuperäiseen taulukkoon.

123456789
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
copy
Note
Huomautus

Uudelleenmuotoillun taulukon alkioiden määrän on oltava sama kuin alkuperäisessä taulukossa, joten et voi antaa mielivaltaista muotoa.

Esimerkissämme taulukon muotoilu 3 riviä ja 4 saraketta (3x4) tai muotoon 2 lohkoa, joissa kummassakin 2 riviä ja 3 saraketta (2x2x3) johtaa edelleen yhteensä 12 alkioon.

Muotoilu arvolla -1

NumPyssa kun käytät -1 arvoa .reshape()-metodissa, se laskee automaattisesti kyseisen ulottuvuuden koon alkuperäisen taulukon koon perusteella, pitäen alkioiden kokonaismäärän samana.

.reshape(-1, 1) on erityisen hyödyllinen koneoppimisessa, kun halutaan muotoilla 1-ulotteinen taulukko 2-ulotteiseksi taulukoksi, jossa on yksi sarake. Rivien määrä tässä tapauksessa on yhtä suuri kuin alkioiden määrä (lasketaan automaattisesti).

123456
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
copy

Uudelleenmuotoiltu taulukko tallennetaan 2D-taulukkona, jossa on 5 riviä ja 1 sarake, muodossa (5, 1). Alkuperäinen 1D-taulukko on muodossa (5,), joka on yksiarvoinen tuple. Kaikille 1D-taulukoille muoto on aina (n,), missä n tarkoittaa alkioiden määrää.

numpy.reshape()

NumPyn reshape()-funktio on identtinen .reshape()-metodin kanssa, mutta sille annetaan taulukko ensimmäisenä argumenttina. shape-parametrille voi antaa joko kokonaislukutuplen tai yksittäisen kokonaisluvun, esim. np.reshape(array, (3, 4)):

123456
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
copy
Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Sinulla on sales_data_2021-taulukko, joka sisältää simuloidut neljännesvuosittaiset myyntitiedot kahdelle tuotteelle vuodelta 2021. Ensimmäiset 4 alkiota edustavat ensimmäisen tuotteen neljännesvuosimyyntiä, ja viimeiset 4 alkiota edustavat toisen tuotteen neljännesvuosimyyntiä.

  1. Käytä sopivaa sales_data_2021-taulukon metodia muuttaaksesi se kaksiulotteiseksi taulukoksi.
  2. Ensimmäisen rivin tulee sisältää ensimmäisen tuotteen neljännesvuosimyynnit.
  3. Toisen rivin tulee sisältää toisen tuotteen neljännesvuosimyynnit.

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 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

some-alt