NumPy taulukon muotoilu

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)

Suorita esimerkki

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)

Suorita esimerkki

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)

Suorita esimerkki

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)

Suorita esimerkki

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)

Suorita esimerkki

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)

Suorita esimerkki

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.