logo

numpy.reshape() u Pythonu

Funkcija numpy.reshape() dostupna je u paketu NumPy. Kao što ime sugerira, reshape znači 'promjene oblika'. Funkcija numpy.reshape() pomaže nam da dobijemo novi oblik niza bez mijenjanja njegovih podataka.

Ponekad moramo preoblikovati podatke iz širokih u dugačke. Dakle, u ovoj situaciji moramo preoblikovati niz pomoću funkcije reshape().

Sintaksa

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

Parametri

Postoje sljedeći parametri funkcije reshape():

1) arr: array_like

Ovo je ndarray. Ovo je izvorni niz koji želimo preoblikovati. Ovaj je parametar bitan i igra vitalnu ulogu u funkciji numpy.reshape().

Logika 1. reda

2) novi_oblik: int ili tuple int

Oblik u koji želimo pretvoriti naš izvorni niz trebao bi biti kompatibilan s izvornim nizom. Ako je cijeli broj, rezultat će biti 1-D niz te duljine. Jedna dimenzija oblika može biti -1. Ovdje je vrijednost aproksimirana duljinom niza i preostalim dimenzijama.

3) poredak: {'C', 'F', 'A'}, izborno

Parametar reda ovih indeksa igra ključnu ulogu u funkciji reshape(). Ovi redoslijedi indeksa koriste se za čitanje elemenata izvornog niza i postavljanje elemenata u preoblikovani niz pomoću ovog redoslijeda indeksa.

  1. Redoslijed indeksa 'C' znači čitanje/pisanje elemenata koji koriste redoslijed indeksa nalik na C gdje se zadnji indeks osi mijenja najbrže, natrag do indeksa prve osi koji se mijenja najsporije.
  2. Redoslijed indeksa 'F' znači čitanje/pisanje elemenata koji koriste redoslijed indeksa sličan Fortranu, gdje se indeks zadnje osi mijenja najsporije, a indeks prve osi najbrže.
  3. Redoslijed 'C' i 'F' ne zauzima nikakvu količinu memorijskog rasporeda osnovnog niza i odnosi se samo na redoslijed indeksiranja.
  4. Redoslijed indeksa 'A' znači čitanje/pisanje elemenata prema redoslijedu indeksa sličnom Fortranu, kada je arr kontinuiran u memoriji, inače koristite redoslijed sličan C-u.

Povratak

Ova funkcija vraća ndarray. To je novi objekt pogleda ako je moguće; inače će biti kopija. Ne postoji jamstvo za memorijski raspored vraćenog niza.

Primjer 1: Redoslijed indeksa nalik na C

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

Izlaz:

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

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Stvorili smo niz 'a' pomoću funkcije np.arrange().
  • Deklarirali smo varijablu 'y' i dodijelili vraćenu vrijednost funkcije np.reshape().
  • Proslijedili smo niz 'x' i oblik u funkciji.
  • Na kraju, pokušali smo ispisati vrijednost arr.

U izlazu, niz je predstavljen kao tri retka i četiri stupca.

Primjer 2: Ekvivalent C ravel zatim C reshape

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

Funkcija ravel() koristi se za stvaranje kontinuiranog spljoštenog niza. Vraća se jednodimenzionalni niz koji sadrži elemente ulaza. Kopija se izrađuje samo kada je potrebna.

java obrnuti niz

Izlaz:

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

Primjer 3: Redoslijed indeksa sličan Fortranu

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

Izlaz:

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

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Stvorili smo niz 'a' pomoću funkcije np.arrange().
  • Deklarirali smo varijablu 'y' i dodijelili vraćenu vrijednost funkcije np.reshape().
  • Proslijedili smo niz 'x' i oblik i redoslijed indeksa sličan Fortranu u funkciji.
  • Na kraju, pokušali smo ispisati vrijednost arr.

U izlazu, niz je predstavljen kao četiri retka i tri stupca.

Primjer 4: Redoslijed indeksa sličan Fortranu

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

Izlaz:

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

Primjer 5: pretpostavlja se da je neodređena vrijednost 2

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

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Stvorili smo niz 'a' pomoću funkcije np.arrange().
  • Deklarirali smo varijablu 'y' i dodijelili vraćenu vrijednost funkcije np.reshape().
  • Proslijedili smo niz 'x' i oblik (nespecificirana vrijednost) u funkciji.
  • Na kraju, pokušali smo ispisati vrijednost arr.

U izlazu, niz je predstavljen kao dva retka i pet stupaca.

Izlaz:

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