single
Utflating av Matriser
Sveip for å vise menyen
Utplatting 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 utplatting 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 utplattet 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 et enkelt 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 tilsvarende funksjonen returnerer en visning av det opprinnelige arrayet, så alle endringer gjort på det omformede arrayet vil også påvirke det opprinnelige arrayet.
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 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.
Sveip for å begynne å kode
- 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 sett verdien
100på 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