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

bookUtflating av Matriser

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 ett om gangen, eller når du ønsker å 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 vi kun oppgir ett 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 det opprinnelige arrayet, slik at eventuelle endringer gjort i det omformede arrayet også vil påvirke det opprinnelige arrayet.

Å bruke flattened_array = np.reshape(array_2d, -1) kan benyttes 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 det opprinnelige arrayet:

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 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}')
copy
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

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. Velg blant de tre opprettede flate arrayene den som er en kopi av det opprinnelige arrayet, ikke en visning, og tildel 100 til det første elementet (bruk positiv indeksering).

Løsning

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

Suggested prompts:

What is the difference between a view and a copy in NumPy?

When should I use flatten() instead of reshape(-1) or ravel()?

Can you explain what happens if I modify the flattened array in each case?

close

Awesome!

Completion rate improved to 3.7

bookUtflating 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 ett om gangen, eller når du ønsker å 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 vi kun oppgir ett 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 det opprinnelige arrayet, slik at eventuelle endringer gjort i det omformede arrayet også vil påvirke det opprinnelige arrayet.

Å bruke flattened_array = np.reshape(array_2d, -1) kan benyttes 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 det opprinnelige arrayet:

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 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}')
copy
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

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. Velg blant de tre opprettede flate arrayene den som er en kopi av det opprinnelige arrayet, ikke en visning, og tildel 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
single

single

some-alt