single
Taulukoiden 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
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):
1234import 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. 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.
Itse asiassa .reshape() palauttaa alkuperäisen taulukon näkymän, joten kaikki muutokset uudelleenmuotoiltuun taulukkoon vaikuttavat myös alkuperäiseen taulukkoon.
123456789import 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)
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).
123456import 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)
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)):
123456import 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)
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ä.
- Käytä sopivaa
sales_data_2021-taulukon metodia muuttaaksesi se kaksiulotteiseksi taulukoksi. - Ensimmäisen rivin tulee sisältää ensimmäisen tuotteen neljännesvuosimyynnit.
- Toisen rivin tulee sisältää toisen tuotteen neljännesvuosimyynnit.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme