Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Omforme Matriser | Vanlig Brukte NumPy-Funksjoner
Ultimate NumPy

Sveip for å vise menyen

book
Omforme Matriser

Omforming av matriser i NumPy lar deg endre formen på en matrise samtidig som alle elementene bevares. Det er en vanlig operasjon i maskinlæring siden mange funksjoner og metoder i maskinlæringsbiblioteker krever at matriser har en spesifikk form.

Matriseformer

For eksempel, en 1D-array med lengde 5 har en form på (5,), mens en 2D-array med 3 rader og 4 kolonner har en form på (3, 4):

1234
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
copy

ndarray.reshape()

NumPy-arrayer har en .reshape()-metode for omforming. Du trenger bare å sende formen til den resulterende arrayen enten som et heltall, en tuple av heltall, eller heltall som separate argumenter.

Denne metoden endrer ikke arrayen på stedet, men returnerer en ny array.

Merk

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

123456789
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
copy

Merk

Antall elementer i den omformede arrayen må være det samme som i den opprinnelige arrayen, så du kan ikke bruke en vilkårlig form.

I vårt eksempel, å endre formen på arrayen til en form med 3 rader og 4 kolonner (3 x 4) eller til en form med 2 blokker, hver inneholdende 2 rader og 3 kolonner (2 x 2 x 3) resulterer fortsatt i totalt 12 elementer.

Omforming med -1

I NumPy, når du bruker -1 i .reshape()-metoden, beregner den automatisk størrelsen på den dimensjonen basert på den opprinnelige arrayens størrelse, samtidig som det totale antallet elementer forblir det samme.

Å bruke .reshape(-1, 1) er spesielt nyttig i maskinlæring når vi trenger å omforme en 1D-array til en 2D-array med én kolonne. Antall rader i dette tilfellet er lik antall elementer (beregnet automatisk).

123456
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
copy

Den omformede arrayen er lagret som en 2D-array med 5 rader og 1 kolonne, med formen (5, 1). I motsetning har den opprinnelige 1D-arrayen formen (5,), som er en tuple med et enkelt element. For enhver 1D-array er formen alltid (n,), der n representerer antall elementer.

numpy.reshape()

reshape()-funksjonen i NumPy er identisk med .reshape()-metoden, men du bør sende en array som dens første argument. For shape-parameteren kan du sende enten en tuple av heltall eller et enkelt heltall, f.eks. np.reshape(array, (3, 4)):

123456
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
copy
Oppgave

Swipe to start coding

Du har en sales_data_2021 array med simulert kvartalsvis salgsdata for to produkter i 2021. De første 4 elementene representerer kvartalsvis salg for det første produktet, og de siste 4 elementene representerer kvartalsvis salg for det andre produktet.

  1. Bruk den passende metoden for sales_data_2021 for å omforme den til en 2D-array.

  2. Den første raden skal inneholde kvartalsvis salg for det første produktet.

  3. Den andre raden skal inneholde kvartalsvis salg for det andre produktet.

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 4

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
Omforme Matriser

Omforming av matriser i NumPy lar deg endre formen på en matrise samtidig som alle elementene bevares. Det er en vanlig operasjon i maskinlæring siden mange funksjoner og metoder i maskinlæringsbiblioteker krever at matriser har en spesifikk form.

Matriseformer

For eksempel, en 1D-array med lengde 5 har en form på (5,), mens en 2D-array med 3 rader og 4 kolonner har en form på (3, 4):

1234
import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
copy

ndarray.reshape()

NumPy-arrayer har en .reshape()-metode for omforming. Du trenger bare å sende formen til den resulterende arrayen enten som et heltall, en tuple av heltall, eller heltall som separate argumenter.

Denne metoden endrer ikke arrayen på stedet, men returnerer en ny array.

Merk

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

123456789
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
copy

Merk

Antall elementer i den omformede arrayen må være det samme som i den opprinnelige arrayen, så du kan ikke bruke en vilkårlig form.

I vårt eksempel, å endre formen på arrayen til en form med 3 rader og 4 kolonner (3 x 4) eller til en form med 2 blokker, hver inneholdende 2 rader og 3 kolonner (2 x 2 x 3) resulterer fortsatt i totalt 12 elementer.

Omforming med -1

I NumPy, når du bruker -1 i .reshape()-metoden, beregner den automatisk størrelsen på den dimensjonen basert på den opprinnelige arrayens størrelse, samtidig som det totale antallet elementer forblir det samme.

Å bruke .reshape(-1, 1) er spesielt nyttig i maskinlæring når vi trenger å omforme en 1D-array til en 2D-array med én kolonne. Antall rader i dette tilfellet er lik antall elementer (beregnet automatisk).

123456
import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
copy

Den omformede arrayen er lagret som en 2D-array med 5 rader og 1 kolonne, med formen (5, 1). I motsetning har den opprinnelige 1D-arrayen formen (5,), som er en tuple med et enkelt element. For enhver 1D-array er formen alltid (n,), der n representerer antall elementer.

numpy.reshape()

reshape()-funksjonen i NumPy er identisk med .reshape()-metoden, men du bør sende en array som dens første argument. For shape-parameteren kan du sende enten en tuple av heltall eller et enkelt heltall, f.eks. np.reshape(array, (3, 4)):

123456
import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
copy
Oppgave

Swipe to start coding

Du har en sales_data_2021 array med simulert kvartalsvis salgsdata for to produkter i 2021. De første 4 elementene representerer kvartalsvis salg for det første produktet, og de siste 4 elementene representerer kvartalsvis salg for det andre produktet.

  1. Bruk den passende metoden for sales_data_2021 for å omforme den til en 2D-array.

  2. Den første raden skal inneholde kvartalsvis salg for det første produktet.

  3. Den andre raden skal inneholde kvartalsvis salg for det andre produktet.

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 4
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