Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utflating av matriser | Vanlig Brukte NumPy-funksjoner
Numpy-Grunnleggende
Seksjon 3. Kapittel 5
single

single

Utflating av matriser

Sveip for å vise menyen

Flating av en matrise betyr å konvertere den fra en flerdimensjonal matrise til en 1D-matrise, altså å rulle ut innholdet.

Denne operasjonen er nyttig når du trenger å behandle elementene i en matrise én etter én eller når du vil gjøre dataene mer egnet for visse algoritmer.

Det finnes tre mulige alternativer for flating i NumPy:

  • Bruke metoden ndarray.reshape(-1) eller funksjonen numpy.reshape(array, -1);
  • Bruke metoden ndarray.ravel() eller funksjonen numpy.ravel(array);
  • Bruke metoden ndarray.flatten().

reshape(-1)

Metoden .reshape(-1) eller funksjonen reshape(array, -1) returnerer en sammenhengende flatet matrise med samme antall elementer.

Som nevnt i forrige kapittel, beregner -1 automatisk størrelsen på dimensjonen basert på størrelsen til den opprinnelige matrisen. Siden du kun oppgir et enkelt heltall for shape, returneres en 1D-matrise med samme antall elementer.

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')

Metoden .reshape() eller den tilsvarende funksjonen returnerer en visning av den opprinnelige arrayen, så alle endringer gjort på den omformede arrayen vil også påvirke den opprinnelige arrayen.

Det er også mulig å bruke flattened_array = np.reshape(array_2d, -1) i stedet for å kalle metoden.

ravel()

Metoden ndarray.ravel() eller funksjonen numpy.ravel(array) fungerer på samme måte som reshape(-1) og returnerer også en visning av den opprinnelige arrayen:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')

flattened_array = np.ravel(array_2d) kan brukes i stedet for å kalle metoden.

ndarray.flatten()

Hvis du ønsker en kopi av det opprinnelige arrayet, ikke en visning, kan du bruke .flatten()-metoden:

1234567
import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Note
Merk

Du kan alltid kopiere en visning av en matrise for å lage et eget objekt og endre denne kopien uten å påvirke den opprinnelige matrisen.

Oppgave

Sveip for å begynne å kode

  1. Bruk .flatten()-metoden korrekt for å flate ut exam_scores og lagre resultatet i exam_scores_flattened.
  2. Bruk .reshape()-metoden korrekt for å flate ut exam_scores og lagre resultatet i exam_scores_reshaped.
  3. Bruk .ravel()-metoden for å flate ut exam_scores og lagre resultatet i exam_scores_raveled.
  4. Velg blant de tre opprettede flate arrayene den som er en kopi av det opprinnelige arrayet, ikke en visning, og sett 100 som første element (bruk positiv indeksering).

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

some-alt