logo

numpy.reshape() i Python

Funksjonen numpy.reshape() er tilgjengelig i NumPy-pakken. Som navnet antyder, betyr omforming 'endringer i form'. Funksjonen numpy.reshape() hjelper oss å få en ny form til en matrise uten å endre dataene.

Noen ganger må vi omforme dataene fra brede til lange. Så i denne situasjonen må vi omforme matrisen ved å bruke funksjonen reshape().

Syntaks

 numpy.reshape(arr, new_shape, order='C') 

Parametere

Det er følgende parametere for reshape()-funksjonen:

1) arr: array_like

Dette er en ndarray. Dette er kildematrisen som vi ønsker å omforme. Denne parameteren er viktig og spiller en viktig rolle i funksjonen numpy.reshape().

strengsammenkobling

2) new_shape: int eller tuppel av ints

Formen vi ønsker å konvertere den opprinnelige matrisen i bør være kompatibel med den originale matrisen. Hvis et heltall, vil resultatet være en 1-D-matrise av den lengden. En formdimensjon kan være -1. Her er verdien tilnærmet med lengden på matrisen og de gjenværende dimensjonene.

3) rekkefølge: {'C', 'F', 'A'}, valgfritt

Disse indeksordreparameteren spiller en avgjørende rolle i funksjonen omforme(). Disse indeksordrene brukes til å lese elementene i kildematrisen og plassere elementene i den omformede matrisen ved å bruke denne indeksrekkefølgen.

  1. Indeksrekkefølgen 'C' betyr å lese/skrive elementene som bruker en C-lignende indeksrekkefølge der den siste akseindeksen endrer seg raskest, tilbake til den første akseindeksen som endrer seg tregest.
  2. Indeksrekkefølgen 'F' betyr å lese/skrive elementene som bruker den Fortran-lignende indeksrekkefølgen, hvor den siste akseindeksen endrer seg langsomst og den første akseindeksen endres raskest.
  3. 'C'- og 'F'-rekkefølgen tar ingen del av minneoppsettet til den underliggende matrisen og refererer bare til indekseringsrekkefølgen.
  4. Indeksrekkefølgen 'A' betyr å lese/skrive elementene i Fortran-lignende indeksrekkefølge, når arr er sammenhengende i minnet, ellers bruk C-lignende rekkefølge.

Returnerer

Denne funksjonen returnerer en ndarray. Det er et nytt visningsobjekt hvis mulig; ellers blir det en kopi. Det er ingen garanti for minneoppsettet til den returnerte matrisen.

Eksempel 1: C-lignende indeksbestilling

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

Produksjon:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en matrise 'a' ved å bruke np.arrange() funksjonen.
  • Vi har erklært variabelen 'y' og tildelt den returnerte verdien til np.reshape()-funksjonen.
  • Vi har passert matrisen 'x' og formen i funksjonen.
  • Til slutt prøvde vi å skrive ut verdien av arr.

I utdataene har matrisen blitt representert som tre rader og fire kolonner.

Eksempel 2: Tilsvarer C ravel deretter C omforme

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

Funksjonen ravel() brukes til å lage en sammenhengende flatt matrise. En endimensjonal matrise som inneholder elementene i inngangen, returneres. En kopi lages kun når det er nødvendig.

romersk siffer 1 til 100

Produksjon:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Eksempel 3: Fortran-lignende indeksbestilling

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

Produksjon:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en matrise 'a' ved å bruke np.arrange() funksjonen.
  • Vi har erklært variabelen 'y' og tildelt den returnerte verdien av np.reshape()-funksjonen.
  • Vi har passert matrisen 'x' og formen og Fortran-lignende indeksrekkefølgen i funksjonen.
  • Til slutt prøvde vi å skrive ut verdien av arr.

I utdataene har matrisen blitt representert som fire rader og tre kolonner.

Eksempel 4: Fortran-lignende indeksbestilling

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

Produksjon:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Eksempel 5: Den uspesifiserte verdien antas å være 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en matrise 'a' ved å bruke np.arrange() funksjonen.
  • Vi har erklært variabelen 'y' og tildelt den returnerte verdien til np.reshape()-funksjonen.
  • Vi har passert matrisen 'x' og formen (uspesifisert verdi) i funksjonen.
  • Til slutt prøvde vi å skrive ut verdien av arr.

I utdataene har matrisen blitt representert som to rader og fem kolonner.

Produksjon:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])