logo

numpy.reshape() i Python

Funktionen numpy.reshape() er tilgængelig i NumPy-pakken. Som navnet antyder, betyder omformning 'ændringer i form'. Funktionen numpy.reshape() hjælper os med at få en ny form til et array uden at ændre dets data.

Nogle gange er vi nødt til at omforme dataene fra brede til lange. Så i denne situation skal vi omforme arrayet ved hjælp af funktionen reshape().

Syntaks

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

Parametre

Der er følgende parametre for reshape()-funktionen:

1) arr: array_like

Dette er en ndarray. Dette er kildearrayet, som vi ønsker at omforme. Denne parameter er vigtig og spiller en afgørende rolle i numpy.reshape()-funktionen.

java cast int til streng

2) new_shape: int eller tuple of ints

Den form, som vi vil konvertere vores originale array i, skal være kompatibel med den originale array. Hvis et heltal, vil resultatet være en 1-D matrix af den længde. En formdimension kan være -1. Her er værdien tilnærmet ved længden af ​​arrayet og de resterende dimensioner.

3) rækkefølge: {'C', 'F', 'A'}, valgfri

Disse indeksordreparameter spiller en afgørende rolle i reshape()-funktionen. Disse indeksordrer bruges til at læse elementerne i kildearrayet og placere elementerne i det omformede array ved hjælp af denne indeksrækkefølge.

  1. Indeksrækkefølgen 'C' betyder at læse/skrive de elementer, der bruger en C-lignende indeksrækkefølge, hvor det sidste akseindeks ændrer sig hurtigst, tilbage til det første akseindeks, der ændrer sig langsomst.
  2. Indeksrækkefølgen 'F' betyder at læse/skrive de elementer, som bruger den Fortran-lignende indeksrækkefølge, hvor det sidste akseindeks ændrer sig langsomst og det første akseindeks ændrer sig hurtigst.
  3. 'C' og 'F' rækkefølgen tager ingen mængde af hukommelseslayoutet af det underliggende array og refererer kun til rækkefølgen af ​​indeksering.
  4. Indeksrækkefølgen 'A' betyder at læse/skrive elementerne i Fortran-lignende indeksrækkefølge, når arr er sammenhængende i hukommelsen, ellers brug C-lignende rækkefølge.

Vender tilbage

Denne funktion returnerer en ndarray. Det er et nyt visningsobjekt, hvis det er muligt; ellers bliver det en kopi. Der er ingen garanti for hukommelseslayoutet for det returnerede array.

Eksempel 1: C-lignende indeksbestilling

 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 ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har lavet et array 'a' ved hjælp af funktionen np.arrange().
  • Vi har erklæret variablen 'y' og tildelt den returnerede værdi af funktionen np.reshape().
  • Vi har bestået arrayet 'x' og formen i funktionen.
  • Til sidst forsøgte vi at udskrive værdien af ​​arr.

I outputtet er arrayet blevet repræsenteret som tre rækker og fire kolonner.

Eksempel 2: Svarende til C ravel derefter C omformning

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

Funktionen ravel() bruges til at skabe et sammenhængende fladt array. Et endimensionelt array, der indeholder elementerne i inputtet, returneres. En kopi laves kun, når det er nødvendigt.

romersk ciffer 1 til 100

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

Eksempel 3: Fortran-lignende indeksbestilling

 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 ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har lavet et array 'a' ved hjælp af funktionen np.arrange().
  • Vi har erklæret variablen 'y' og tildelt den returnerede værdi af funktionen np.reshape().
  • Vi har bestået arrayet 'x' og formen og Fortran-lignende indeksrækkefølge i funktionen.
  • Til sidst forsøgte vi at udskrive værdien af ​​arr.

I outputtet er arrayet blevet repræsenteret som fire rækker 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 

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

Eksempel 5: Den uspecificerede værdi udledes til at være 2

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

I ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har lavet et array 'a' ved hjælp af funktionen np.arrange().
  • Vi har erklæret variablen 'y' og tildelt den returnerede værdi af funktionen np.reshape().
  • Vi har bestået arrayet 'x' og formen (uspecificeret værdi) i funktionen.
  • Til sidst forsøgte vi at udskrive værdien af ​​arr.

I outputtet er arrayet blevet repræsenteret som to rækker og fem kolonner.

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