Taulukoiden Muotoilu Uudelleen
Taulukon muotoilu NumPy:ssä mahdollistaa taulukon muodon muuttamisen säilyttäen kaikki elementit. Se on yleisesti käytetty operaatio koneoppimisessa, koska monet koneoppimiskirjastojen funktiot ja menetelmät vaativat taulukoiden olevan tietyssä muodossa.
Taulukon muodot
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)
:
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)
ndarray.reshape()
NumPy-taulukoilla on .reshape()
-metodi muodon muuttamiseen. Sinun tarvitsee vain antaa tuloksena olevan taulukon muoto joko kokonaislukuna, kokonaislukujen tuplena tai kokonaislukuina erillisinä argumentteina.
Tämä metodi ei muuta taulukkoa paikan päällä, vaan palauttaa uuden taulukon.
Huomio
Itse asiassa,
.reshape()
palauttaa alkuperäisen taulukon näkymän, joten kaikki muutokset, jotka tehdään uudelleenmuotoiltuun taulukkoon, vaikuttavat myös alkuperäiseen taulukkoon.
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)
Huomio
Muotoillun taulukon elementtien määrän on oltava sama kuin alkuperäisessä taulukossa, joten et voi antaa mielivaltaista muotoa.
Esimerkissämme taulukon muotoilu 3 riviksi ja 4 sarakkeeksi (3 x 4) tai muotoon 2 lohkoa, joissa jokaisessa on 2 riviä ja 3 saraketta (2 x 2 x 3) johtaa edelleen yhteensä 12 elementtiin.
Muotoilu -1:llä
NumPy:ssä, kun käytät -1
.reshape()
-menetelmässä, se laskee automaattisesti kyseisen ulottuvuuden koon alkuperäisen taulukon koon perusteella, pitäen samalla elementtien kokonaismäärän samana.
Käyttämällä .reshape(-1, 1)
on erityisen hyödyllistä koneoppimisessa, kun meidän täytyy muotoilla 1D-taulukko 2D-taulukoksi, jossa on yksi sarake. Rivien määrä tässä tapauksessa on yhtä suuri kuin elementtien määrä (lasketaan automaattisesti).
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)
Muunnettu taulukko tallennetaan 2D-taulukkona, jossa on 5
riviä ja 1
sarake, ja sen muoto on (5, 1)
. Sen sijaan alkuperäisen 1D-taulukon muoto on (5,)
, joka on yksielementtinen tuple. Kaikille 1D-taulukoille muoto on aina (n,)
, missä n
edustaa elementtien lukumäärää.
numpy.reshape()
reshape()
-funktio NumPyssa on identtinen .reshape()
-metodin kanssa, mutta sinun tulee antaa taulukko sen ensimmäisenä argumenttina. shape
-parametrille voit antaa joko kokonaislukujen tuplen tai yksittäisen kokonaisluvun, esim. np.reshape(array, (3, 4))
:
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)
Swipe to start coding
Sinulla on sales_data_2021
-taulukko, jossa on simuloitu neljännesvuosittainen myyntidata kahdelle tuotteelle vuonna 2021. Ensimmäiset 4 elementtiä edustavat ensimmäisen tuotteen neljännesvuosittaista myyntiä, ja viimeiset 4 elementtiä edustavat toisen tuotteen neljännesvuosittaista myyntiä.
-
Käytä
sales_data_2021
-taulukon sopivaa metodia muotoillaksesi se 2D-taulukoksi. -
Ensimmäisen rivin tulisi sisältää ensimmäisen tuotteen neljännesvuosittainen myynti.
-
Toisen rivin tulisi sisältää toisen tuotteen neljännesvuosittainen myynti.
Ratkaisu
Kiitos palautteestasi!