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
Ultimate NumPy

Sveip for å vise menyen

book
Utflating av Matriser

Flatting en matrise betyr å konvertere den fra en flerdimensjonal matrise til en 1D-matrise, i hovedsak å avdekke innholdet.

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

Det er tre mulige alternativer for flatting i NumPy:

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

  • Bruke ndarray.ravel()-metoden eller numpy.ravel(array)-funksjonen;

  • Bruke ndarray.flatten()-metoden.

reshape(-1)

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

Som vi allerede har nevnt i forrige kapittel, beregner -1 automatisk størrelsen på dimensjonen basert på den opprinnelige matrisens størrelse. Siden vi bare sender 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}')
copy

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

Å bruke flattened_array = np.reshape(array_2d, -1) kan brukes 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}')
copy

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

ndarray.flatten()

Hvis du ønsker en kopi av den opprinnelige arrayen, 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}')
copy

Merk

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

Oppgave

Swipe to start coding

  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. Av de tre opprettede flate matrisene, velg den som er en kopi av den opprinnelige matrisen, ikke en visning, og tilordne 100 til det første elementet (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

Spør AI

expand
ChatGPT

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

book
Utflating av Matriser

Flatting en matrise betyr å konvertere den fra en flerdimensjonal matrise til en 1D-matrise, i hovedsak å avdekke innholdet.

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

Det er tre mulige alternativer for flatting i NumPy:

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

  • Bruke ndarray.ravel()-metoden eller numpy.ravel(array)-funksjonen;

  • Bruke ndarray.flatten()-metoden.

reshape(-1)

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

Som vi allerede har nevnt i forrige kapittel, beregner -1 automatisk størrelsen på dimensjonen basert på den opprinnelige matrisens størrelse. Siden vi bare sender 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}')
copy

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

Å bruke flattened_array = np.reshape(array_2d, -1) kan brukes 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}')
copy

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

ndarray.flatten()

Hvis du ønsker en kopi av den opprinnelige arrayen, 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}')
copy

Merk

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

Oppgave

Swipe to start coding

  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. Av de tre opprettede flate matrisene, velg den som er en kopi av den opprinnelige matrisen, ikke en visning, og tilordne 100 til det første elementet (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
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt