Funkce numpy.reshape() je dostupná v balíčku NumPy. Jak název napovídá, reshape znamená „změny tvaru“. Funkce numpy.reshape() nám pomáhá získat nový tvar pole bez změny jeho dat.
Někdy potřebujeme data přetvořit z širokých na dlouhé. Takže v této situaci musíme pole přetvořit pomocí funkce reshape().
Syntax
numpy.reshape(arr, new_shape, order='C')
Parametry
Funkce reshape() má následující parametry:
1) arr: array_like
Toto je ndarray. Toto je zdrojové pole, které chceme přetvořit. Tento parametr je zásadní a hraje zásadní roli ve funkci numpy.reshape().
java elseif
2) new_shape: int nebo n-tice ints
Tvar, do kterého chceme převést naše původní pole, by měl být kompatibilní s původním polem. Pokud je to celé číslo, výsledkem bude 1-D pole této délky. Jeden rozměr tvaru může být -1. Zde je hodnota aproximována délkou pole a zbývajícími rozměry.
3) pořadí: {'C', 'F', 'A'}, volitelné
Tento parametr pořadí indexů hraje klíčovou roli ve funkci reshape(). Tato pořadí indexů se používají ke čtení prvků zdrojového pole a umístění prvků do přetvarovaného pole pomocí tohoto pořadí indexů.
- Pořadí indexu „C“ znamená číst/zapisovat prvky, které používají pořadí indexu podobné C, kde se index poslední osy mění nejrychleji, zpět k indexu první osy, který se mění nejpomaleji.
- Pořadí indexu 'F' znamená číst/zapisovat prvky, které používají pořadí indexu podobné Fortranu, kde se index poslední osy mění nejpomaleji a index první osy se mění nejrychleji.
- Pořadí 'C' a 'F' nebere v úvahu rozložení paměti základního pole a odkazuje pouze na pořadí indexování.
- Pořadí indexu 'A' znamená číst/zapisovat prvky v pořadí indexu podobnému Fortranu, když je arr v paměti souvislé, jinak použijte pořadí podobné C.
Návraty
Tato funkce vrací ndarray. Pokud je to možné, je to nový objekt pohledu; jinak to bude kopie. Není zaručeno rozložení paměti vráceného pole.
Příklad 1: Uspořádání indexu podobné C
import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y
Výstup:
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]])
Ve výše uvedeném kódu
- Importovali jsme numpy s aliasem np.
- Vytvořili jsme pole 'a' pomocí funkce np.arrange().
- Deklarovali jsme proměnnou 'y' a přiřadili vrácenou hodnotu funkce np.reshape().
- Předali jsme pole 'x' a tvar ve funkci.
- Nakonec jsme zkusili vytisknout hodnotu arr.
Ve výstupu bylo pole reprezentováno jako tři řádky a čtyři sloupce.
Příklad 2: Ekvivalent C ravel, pak C reshape
import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y
Funkce ravel() se používá k vytvoření souvislého zploštělého pole. Vrátí se jednorozměrné pole, které obsahuje prvky vstupu. Kopie se vytváří pouze v případě potřeby.
ctc plná forma
Výstup:
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]])
Příklad 3: Uspořádání indexu podobné Fortranu
import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y
Výstup:
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]])
Ve výše uvedeném kódu
- Importovali jsme numpy s aliasem np.
- Vytvořili jsme pole 'a' pomocí funkce np.arrange().
- Deklarovali jsme proměnnou 'y' a přiřadili vrácenou hodnotu funkce np.reshape().
- Předali jsme pole 'x' a tvar a pořadí indexu podobné Fortranu ve funkci.
- Nakonec jsme zkusili vytisknout hodnotu arr.
Ve výstupu bylo pole reprezentováno jako čtyři řádky a tři sloupce.
Příklad 4: Uspořádání 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ýstup:
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]])
Příklad 5: Nespecifikovaná hodnota je odvozena jako 2
import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y
Ve výše uvedeném kódu
- Importovali jsme numpy s aliasem np.
- Vytvořili jsme pole 'a' pomocí funkce np.arrange().
- Deklarovali jsme proměnnou 'y' a přiřadili vrácenou hodnotu funkce np.reshape().
- Ve funkci jsme předali pole 'x' a tvar (nespecifikovaná hodnota).
- Nakonec jsme zkusili vytisknout hodnotu arr.
Ve výstupu bylo pole reprezentováno jako dva řádky a pět sloupců.
Výstup:
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]])