logo

numpy.reshape() i Python

Funktionen numpy.reshape() är tillgänglig i NumPy-paketet. Som namnet antyder betyder omformning 'förändringar i form'. Funktionen numpy.reshape() hjälper oss att få en ny form till en array utan att ändra dess data.

Ibland måste vi omforma data från bred till lång. Så i den här situationen måste vi omforma arrayen med funktionen reshape().

Syntax

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

Parametrar

Det finns följande parametrar för funktionen reshape():

1) arr: array_like

Det här är en ndarray. Detta är källmatrisen som vi vill omforma. Denna parameter är viktig och spelar en viktig roll i numpy.reshape()-funktionen.

mvc för java

2) new_shape: int eller tupel av ints

Formen i vilken vi vill konvertera vår ursprungliga array bör vara kompatibel med den ursprungliga arrayen. Om ett heltal blir resultatet en 1D-matris av den längden. En formdimension kan vara -1. Här approximeras värdet av längden på arrayen och de återstående dimensionerna.

3) order: {'C', 'F', 'A'}, valfritt

Dessa indexorderparameter spelar en avgörande roll i reshape()-funktionen. Dessa indexordrar används för att läsa elementen i källmatrisen och placera elementen i den omformade matrisen med hjälp av denna indexordning.

  1. Indexordningen 'C' betyder att läsa/skriva de element som använder en C-liknande indexordning där det sista axelindexet ändras snabbast, tillbaka till det första axelindexet som ändras långsammast.
  2. Indexordningen 'F' betyder att läsa/skriva de element som använder den Fortran-liknande indexordningen, där det sista axelindexet ändras långsammast och det första axelindexet ändras snabbast.
  3. Ordningen 'C' och 'F' tar ingen del av minneslayouten för den underliggande arrayen och hänvisar endast till indexeringsordningen.
  4. Indexordningen 'A' betyder att läsa/skriva elementen i Fortran-liknande indexordning, när arr är sammanhängande i minnet, använd annars C-liknande ordning.

Returnerar

Denna funktion returnerar en ndarray. Det är ett nytt vyobjekt om möjligt; annars blir det en kopia. Det finns ingen garanti för minneslayouten för den returnerade arrayen.

Exempel 1: C-liknande indexordning

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

Produktion:

 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 ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat en array 'a' med funktionen np.arrange().
  • Vi har deklarerat variabeln 'y' och tilldelat det returnerade värdet för funktionen np.reshape() .
  • Vi har passerat arrayen 'x' och formen i funktionen.
  • Till sist försökte vi skriva ut värdet på arr.

I utgången har arrayen representerats som tre rader och fyra kolumner.

Exempel 2: Motsvarar C ravel sedan C omforma

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

Funktionen ravel() används för att skapa en sammanhängande tillplattad array. En endimensionell array som innehåller indataelementen returneras. En kopia görs endast när det behövs.

spel duva android

Produktion:

 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]]) 

Exempel 3: Fortran-liknande indexordning

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

Produktion:

 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 ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat en array 'a' med funktionen np.arrange().
  • Vi har deklarerat variabeln 'y' och tilldelat det returnerade värdet för funktionen np.reshape().
  • Vi har passerat arrayen 'x' och formen och Fortran-liknande indexordningen i funktionen.
  • Till sist försökte vi skriva ut värdet på arr.

I utgången har arrayen representerats som fyra rader och tre kolumner.

Exempel 4: Fortran-liknande indexordning

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

Produktion:

 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]]) 

Exempel 5: Det ospecificerade värdet antas vara 2

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

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat en array 'a' med funktionen np.arrange().
  • Vi har deklarerat variabeln 'y' och tilldelat det returnerade värdet för funktionen np.reshape() .
  • Vi har passerat arrayen 'x' och formen (ospecificerat värde) i funktionen.
  • Till sist försökte vi skriva ut värdet på arr.

I utgången har arrayen representerats som två rader och fem kolumner.

Produktion:

 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]])