logo

numpy.reshape() v Pythone

Funkcia numpy.reshape() je dostupná v balíku NumPy. Ako už názov napovedá, reshape znamená „zmeny tvaru“. Funkcia numpy.reshape() nám pomáha získať nový tvar poľa bez zmeny jeho údajov.

Niekedy potrebujeme zmeniť tvar údajov zo širokých na dlhé. Takže v tejto situácii musíme zmeniť tvar poľa pomocou funkcie reshape().

Syntax

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

Parametre

Funkcia reshape() má nasledujúce parametre:

1) arr: ako pole

Toto je ndarray. Toto je zdrojové pole, ktoré chceme zmeniť. Tento parameter je nevyhnutný a hrá dôležitú úlohu vo funkcii numpy.reshape().

java elseif

2) new_shape: int alebo tuple of ints

Tvar, do ktorého chceme previesť naše pôvodné pole, by mal byť kompatibilný s pôvodným poľom. Ak je to celé číslo, výsledkom bude 1-D pole tejto dĺžky. Jeden rozmer tvaru môže byť -1. Tu je hodnota aproximovaná dĺžkou poľa a zostávajúcimi rozmermi.

3) poradie: {'C', 'F', 'A'}, voliteľné

Tento parameter poradia indexov hrá kľúčovú úlohu vo funkcii reshape(). Tieto poradia indexov sa používajú na čítanie prvkov zdrojového poľa a umiestnenie prvkov do pretvarovaného poľa pomocou tohto poradia indexov.

  1. Poradie indexu „C“ znamená čítať/zapisovať prvky, ktoré používajú poradie indexu podobné C, kde sa index poslednej osi mení najrýchlejšie, späť k indexu prvej osi, ktorý sa mení najpomalšie.
  2. Poradie indexu „F“ znamená čítať/zapisovať prvky, ktoré používajú poradie indexu podobné Fortranu, kde sa index poslednej osi mení najpomalšie a index prvej osi sa mení najrýchlejšie.
  3. Poradie 'C' a 'F' nezohľadňuje rozloženie pamäte základného poľa a týka sa len poradia indexovania.
  4. Poradie indexu „A“ znamená čítať/zapisovať prvky v poradí indexov podobnom Fortranu, keď arr je v pamäti súvislé, inak použite poradie podobné C.

Návraty

Táto funkcia vracia ndarray. Ak je to možné, je to nový objekt zobrazenia; inak to bude kópia. Neexistuje žiadna záruka rozloženia pamäte vráteného poľa.

Príklad 1: Indexové usporiadanie podobné C

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

Výkon:

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

Vo vyššie uvedenom kóde

  • Importovali sme numpy s aliasom np.
  • Vytvorili sme pole 'a' pomocou funkcie np.arrange().
  • Deklarovali sme premennú 'y' a priradili vrátenú hodnotu funkcie np.reshape().
  • Vo funkcii sme odovzdali pole 'x' a tvar.
  • Nakoniec sme sa pokúsili vytlačiť hodnotu arr.

Vo výstupe je pole reprezentované ako tri riadky a štyri stĺpce.

Príklad 2: Ekvivalent k C ravel potom C pretvarovať

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

Funkcia ravel() sa používa na vytvorenie súvislého splošteného poľa. Vráti sa jednorozmerné pole, ktoré obsahuje prvky vstupu. Kópia sa vytvorí iba vtedy, keď je to potrebné.

orezanie javascriptom

Výkon:

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

Príklad 3: Usporiadanie indexu podobné Fortranu

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

Výkon:

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

Vo vyššie uvedenom kóde

  • Importovali sme numpy s aliasom np.
  • Vytvorili sme pole 'a' pomocou funkcie np.arrange().
  • Deklarovali sme premennú 'y' a priradili vrátenú hodnotu funkcie np.reshape().
  • Vo funkcii sme odovzdali pole 'x' a tvar a poradie indexu podobné Fortranu.
  • Nakoniec sme sa pokúsili vytlačiť hodnotu arr.

Vo výstupe je pole reprezentované ako štyri riadky a tri stĺpce.

Príklad 4: Usporiadanie indexu podobné Fortranu

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

Výkon:

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

Príklad 5: Nešpecifikovaná hodnota je odvodená ako 2

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

Vo vyššie uvedenom kóde

  • Importovali sme numpy s aliasom np.
  • Vytvorili sme pole 'a' pomocou funkcie np.arrange().
  • Deklarovali sme premennú 'y' a priradili vrátenú hodnotu funkcie np.reshape().
  • Vo funkcii sme odovzdali pole 'x' a tvar (nešpecifikovaná hodnota).
  • Nakoniec sme sa pokúsili vytlačiť hodnotu arr.

Vo výstupe je pole reprezentované ako dva riadky a päť stĺpcov.

Výkon:

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