Utflating 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 funksjonennumpy.reshape(array, -1); - Bruke metoden
ndarray.ravel()eller funksjonennumpy.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.
1234567import 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 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:
1234567import 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:
1234567import 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}')
Du kan alltid kopiere en visning av en matrise for å lage et eget objekt og endre denne kopien uten å påvirke den opprinnelige matrisen.
Swipe to start coding
- Bruk
.flatten()-metoden korrekt for å flate utexam_scoresog lagre resultatet iexam_scores_flattened. - Bruk
.reshape()-metoden korrekt for å flate utexam_scoresog lagre resultatet iexam_scores_reshaped. - Bruk
.ravel()-metoden for å flate utexam_scoresog lagre resultatet iexam_scores_raveled. - Velg blant de tre opprettede flate arrayene den som er en kopi av det opprinnelige arrayet, ikke en visning, og tildel
100til det første elementet (bruk positiv indeksering).
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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?
Awesome!
Completion rate improved to 3.7
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 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 funksjonennumpy.reshape(array, -1); - Bruke metoden
ndarray.ravel()eller funksjonennumpy.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.
1234567import 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 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:
1234567import 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:
1234567import 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}')
Du kan alltid kopiere en visning av en matrise for å lage et eget objekt og endre denne kopien uten å påvirke den opprinnelige matrisen.
Swipe to start coding
- Bruk
.flatten()-metoden korrekt for å flate utexam_scoresog lagre resultatet iexam_scores_flattened. - Bruk
.reshape()-metoden korrekt for å flate utexam_scoresog lagre resultatet iexam_scores_reshaped. - Bruk
.ravel()-metoden for å flate utexam_scoresog lagre resultatet iexam_scores_raveled. - Velg blant de tre opprettede flate arrayene den som er en kopi av det opprinnelige arrayet, ikke en visning, og tildel
100til det første elementet (bruk positiv indeksering).
Løsning
Takk for tilbakemeldingene dine!
single