logo

numpy.reshape() Pythonban

A numpy.reshape() függvény a NumPy csomagban érhető el. Ahogy a neve is sugallja, a reshape jelentése „alakváltozás”. A numpy.reshape() függvény segítségével új alakzatot kaphatunk egy tömbhöz anélkül, hogy megváltoztatnánk az adatait.

Néha át kell alakítanunk az adatokat szélesről hosszúra. Tehát ebben a helyzetben át kell alakítanunk a tömböt a reshape() függvény segítségével.

Szintaxis

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

Paraméterek

A reshape() függvénynek a következő paraméterei vannak:

1) arr: array_like

Ez egy ndarray. Ez a forrástömb, amelyet át akarunk alakítani. Ez a paraméter alapvető fontosságú, és létfontosságú szerepet játszik a numpy.reshape() függvényben.

Apple hangulatjelek androidon

2) new_shape: int vagy ints sor

Az eredeti tömböt átalakítani kívánt alaknak kompatibilisnek kell lennie az eredeti tömbbel. Ha egész szám, akkor az eredmény egy ilyen hosszúságú egydimenziós tömb lesz. Az egyik alakdimenzió -1 lehet. Itt az értéket a tömb hosszával és a fennmaradó méretekkel közelítjük.

3) sorrend: {'C', 'F', 'A'}, nem kötelező

Ezek az indexek sorrendi paraméterei döntő szerepet játszanak a reshape() függvényben. Ezek az indexsorrendek a forrástömb elemeinek beolvasására és az elemek átformált tömbbe történő elhelyezésére szolgálnak ezzel az indexsorrenddel.

  1. A „C” indexsorrend azt jelenti, hogy olyan elemeket kell olvasni/írni, amelyek C-szerű indexsorrendet használnak, ahol az utolsó tengelyindex változik a leggyorsabban, vissza az első tengelyindexhez, amely a leglassabban változik.
  2. Az 'F' indexsorrend a Fortran-szerű indexsorrendet használó elemek olvasását/írását jelenti, ahol az utolsó tengelyindex változik a leglassabban és az első tengelyindex a leggyorsabban.
  3. A 'C' és 'F' sorrend nem veszi figyelembe az alapul szolgáló tömb memóriaelrendezését, és csak az indexelés sorrendjére utal.
  4. Az „A” indexsorrend azt jelenti, hogy az elemeket Fortran-szerű indexsorrendben kell olvasni/írni, ha az arr szomszédos a memóriában, ellenkező esetben C-szerű sorrendet kell használni.

Visszatér

Ez a függvény egy ndarray-t ad vissza. Ez egy új nézetobjektum, ha lehetséges; különben másolat lesz. Nincs garancia a visszaadott tömb memóriaelrendezésére.

1. példa: C-szerű indexrendezés

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

Kimenet:

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

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy 'a' tömböt az np.arrange() függvény segítségével.
  • Deklaráltuk az 'y' változót, és hozzárendeltük az np.reshape() függvény visszaadott értékét.
  • A függvényben átadtuk az 'x' tömböt és az alakzatot.
  • Végül megpróbáltuk kinyomtatni az arr értékét.

A kimenetben a tömb három sorként és négy oszlopként jelenik meg.

2. példa: Egyenértékű a C ravel, majd a C újraformálással

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

A ravel() függvény egy összefüggő lapított tömb létrehozására szolgál. A bemenet elemeit tartalmazó egydimenziós tömb kerül visszaadásra. A másolat csak akkor készül, ha szükséges.

játék galamb android

Kimenet:

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

3. példa: Fortran-szerű indexrendezés

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

Kimenet:

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

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy 'a' tömböt az np.arrange() függvény segítségével.
  • Deklaráltuk az 'y' változót, és hozzárendeltük az np.reshape() függvény visszaadott értékét.
  • A függvényben átadtuk az 'x' tömböt, valamint a forma és a Fortran-szerű index sorrendjét.
  • Végül megpróbáltuk kinyomtatni az arr értékét.

A kimenetben a tömb négy sor és három oszlop formájában van ábrázolva.

4. példa: Fortran-szerű indexrendezés

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

Kimenet:

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

5. példa: A meghatározatlan érték 2 lesz

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

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy 'a' tömböt az np.arrange() függvény segítségével.
  • Deklaráltuk az 'y' változót, és hozzárendeltük az np.reshape() függvény visszaadott értékét.
  • A függvényben átadtuk az 'x' tömböt és az alakzatot (meghatározatlan érték).
  • Végül megpróbáltuk kinyomtatni az arr értékét.

A kimenetben a tömb két sorként és öt oszlopként jelenik meg.

Kimenet:

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