NumPy taulukon muotoilu
- Edellinen sivu NumPy taulukon muoto
- Seuraava sivu NumPy taulukon iterointi
Taulukon muotoilu
Muodon muuttaminen tarkoittaa taulukon muodon muuttamista.
Taulukon muoto on jokaisen ulottuvuuden elementtien määrä.
Muodon muuttaminen voi lisätä tai poistaa ulottuvuuksia tai muuttaa elementtien määrää jokaisella ulottuvuudella.
Muunna 1-D:stä 2-D:ään
Esimerkki
Muunna seuraava 12-elementtinen 1-D-taulukko 2-D-taulukoksi.
Ulompi ulottuvuus sisältää 4 taulukkoa, joissa on 3 elementtiä:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
Muunna 1-D:stä 3-D:ään
Esimerkki
Muunna seuraava 12-elementtinen 1-D-taulukko 3-D-taulukoksi.
Ulompi ulottuvuus sisältää 2 taulukkoa, joissa on 3 taulukkoa, ja jokaisessa taulukossa on 2 elementtiä:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
Voimmeko muuntaa mihin tahansa muotoon?
Kyllä, kunksa muodon muuttaminen vaatii yhtä monta elementtiä molemmissa muodoissa.
Voimme muuntaa 8-elementtisen 1D-taulukon 2 rivin 2D-taulukon 4 elementiksi, mutta emme voi muuntaa sitä 3 elementin 3 rivin 2D-taulukoksi, koska tähän tarvitaan 3x3 = 9 elementtiä.
Esimerkki
Yritä muuntaa 8-elementtinen 1D-taulukko 2D-taulukoksi, jossa jokaisella ulottuvuudella on 3 elementti (tämä aiheuttaa virheen):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Palautetaanko kopio vai näkymä?
Esimerkki
Tarkista, onko palautettu taulukko kopio vai näkymä:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
Yllä oleva esimerkki palauttaa alkuperäisen tietorakenteen, joten se on näkymä.
Tuntematon ulottuvuus
Voit käyttää 'tuntematonta' ulottuvuutta.
Tämä tarkoittaa, että sinun ei tarvitse määrittää tarkkaa lukua reshape-metodin yhdelle ulottuvuudelle.
Lähetä -1
NumPy laskee numeron puolestasi.
Esimerkki
Muunna 8-elementin 1D-tietorakenne 2x2-elementiksi 3D-tietorakenteeksi:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Huomautus:Emme voi muuntaa -1
Lähetetään yhteen tai useampaan ulottuvuuteen.
Tasoittaminen
Tasoittaminen (Flattening the arrays) tarkoittaa monimutkaisen tietorakenteen muuntamista 1D-tietorakenteeksi.
Voimme käyttää reshape(-1)
Tee tämä.
Esimerkki
Muunna tietorakenne 1D-tietorakenteeksi:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Huomautus:On monia toimintoja, joilla voidaan muuttaa numpy flatten, ravel -tietorakenteiden muotoa ja uudelleenjärjestää elementtejä rot90, flip, fliplr, flipud jne. Nämä toiminnot kuuluvat numpy:n keskitasolle ja korkeatasolle.
- Edellinen sivu NumPy taulukon muoto
- Seuraava sivu NumPy taulukon iterointi