logo

numpy.reshape() în Python

Funcția numpy.reshape() este disponibilă în pachetul NumPy. După cum sugerează și numele, remodelare înseamnă „schimbări de formă”. Funcția numpy.reshape() ne ajută să obținem o nouă formă într-o matrice fără a-i modifica datele.

Uneori, trebuie să remodelăm datele de la lat la lung. Deci, în această situație, trebuie să remodelăm matricea folosind funcția reshape().

Sintaxă

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

Parametrii

Există următorii parametri ai funcției reshape():

1) arr: array_like

Acesta este un ndarray. Aceasta este matricea sursă pe care dorim să o remodelăm. Acest parametru este esențial și joacă un rol vital în funcția numpy.reshape().

verificarea nulă în java

2) new_shape: int sau tuplu de int

Forma în care dorim să convertim matricea noastră originală ar trebui să fie compatibilă cu matricea originală. Dacă este un număr întreg, rezultatul va fi o matrice 1-D de acea lungime. O dimensiune a formei poate fi -1. Aici, valoarea este aproximată prin lungimea matricei și dimensiunile rămase.

3) comanda: {'C', 'F', 'A'}, opţional

Acest parametru de ordine a indexurilor joacă un rol crucial în funcția reshape(). Aceste ordine de index sunt folosite pentru a citi elementele matricei sursă și pentru a plasa elementele în matricea remodelată folosind această ordine de index.

  1. Ordinea indexului „C” înseamnă a citi/scrie elementele care utilizează o ordine de index asemănătoare C, unde ultimul indice al axei se schimbă cel mai rapid, înapoi la primul indice al axei care se schimbă cel mai lent.
  2. Ordinea indexului „F” înseamnă a citi/scrie elementele care folosesc ordinea indexului de tip Fortran, unde ultimul indice al axei se schimbă cel mai lent și primul indice al axei se schimbă cel mai rapid.
  3. Ordinele „C” și „F” nu iau nicio cantitate din aspectul de memorie al matricei de bază și se referă doar la ordinea de indexare.
  4. Ordinea indexului „A” înseamnă a citi/scrie elementele în ordinea indexului de tip Fortran, când arr este învecinat în memorie, în caz contrar utilizați ordinea C-like.

Se intoarce

Această funcție returnează un ndarray. Este un nou obiect de vizualizare, dacă este posibil; în caz contrar, va fi o copie. Nu există nicio garanție pentru aspectul memoriei matricei returnate.

Exemplul 1: ordonarea indicilor de tip C

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

Ieșire:

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

În codul de mai sus

  • Am importat numpy cu numele de alias np.
  • Am creat o matrice „a” folosind funcția np.arrange().
  • Am declarat variabila „y” și am atribuit valoarea returnată a funcției np.reshape().
  • Am trecut matricea „x” și forma în funcție.
  • În cele din urmă, am încercat să tipărim valoarea arr.

În rezultat, matricea a fost reprezentată ca trei rânduri și patru coloane.

Exemplul 2: Echivalent cu C ravel apoi C remodelare

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

Funcția ravel() este utilizată pentru a crea o matrice aplatizată învecinată. Este returnată o matrice unidimensională care conține elementele de intrare. O copie se face numai atunci când este nevoie.

round matematică java

Ieșire:

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

Exemplul 3: ordonarea indexului de tip Fortran

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

Ieșire:

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

În codul de mai sus

  • Am importat numpy cu numele de alias np.
  • Am creat o matrice „a” folosind funcția np.arrange().
  • Am declarat variabila „y” și am atribuit valoarea returnată a funcției np.reshape().
  • Am trecut matricea „x” și ordinea formei și a indexului Fortran în funcție.
  • În cele din urmă, am încercat să tipărim valoarea arr.

În rezultat, matricea a fost reprezentată ca patru rânduri și trei coloane.

Exemplul 4: ordonarea indexului de tip Fortran

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

Ieșire:

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

Exemplul 5: valoarea nespecificată este dedusă a fi 2

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

În codul de mai sus

  • Am importat numpy cu numele de alias np.
  • Am creat o matrice „a” folosind funcția np.arrange().
  • Am declarat variabila „y” și am atribuit valoarea returnată a funcției np.reshape().
  • Am trecut matricea „x” și forma (valoare nespecificată) în funcție.
  • În cele din urmă, am încercat să tipărim valoarea arr.

În rezultat, matricea a fost reprezentată ca două rânduri și cinci coloane.

Ieșire:

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