Knižnica NumPy má veľa funkcií na prácu s viacrozmerným poľom. Funkcia reshape () je jednou z nich, ktorá sa používa na zmenu tvaru ľubovoľného existujúceho poľa bez zmeny údajov. Tvar definuje celkový počet prvkov v každej dimenzii. Dimenziu poľa je možné pridať alebo odobrať a počet prvkov v každej dimenzii upraviť pomocou funkcie reshape (). Jednorozmerné pole je možné previesť na viacrozmerné pole, ale viacrozmerné pole nie je možné pomocou tejto funkcie previesť na jednorozmerné pole. Ako funguje funkcia reshape () a jej použitie je vysvetlené v tejto príručke.
Syntax
Syntax funkcie reshape () je uvedená nižšie.
np_array numpy.zmeniť tvar (np_array, new_shape, order = 'C')Táto funkcia môže mať tri argumenty. Prvý a druhý argument sú povinné a tretí argument je voliteľný. Pole NumPy je hodnota prvého argumentu (np_array), ktoré budú zmenené. Tvar poľa je nastavený ako druhý argument (new_shape) hodnota, ktorá môže byť celé číslo alebo n-tica celých čísel. Poradie poľa je nastavené tretím argumentom (objednať) hodnota použitá na definovanie polohy prvku v pretvorenom poli. Hodnota tretieho argumentu môže byť „C„alebo“F„alebo“A.„Hodnota objednávky“Csa používa na usporiadanie indexov v štýle C, kde sa index poslednej osi mení rýchlejšie a index prvej osi sa mení pomalšie. Hodnota objednávky 'F'sa používa na usporiadanie indexov podľa Fortranovho štýlu, kde sa index prvej osi mení rýchlejšie a index poslednej osi sa mení pomalšie. ObojeC„a“F„objednávky nevyužívajú pamäť. Hodnota objednávky, “A„funguje ako“F,„ale využíva pamäť.
Použitie funkcie reshape ():
Pred precvičením príkladov tohto tutoriálu si musíte nainštalovať knižnicu NumPy. V časti tohto tutoriálu sa ukázali rôzne použitia funkcie reshape ().
Príklad-1: Konvertujte jednorozmerné pole na dvojrozmerné pole
Nasledujúci príklad ukazuje funkciu reshape () na prevod jednorozmerného poľa NumPy na dvojrozmerné pole NumPy. Funkcia arange () sa v skripte používa na vytvorenie jednorozmerného poľa 10 prvkov. Prvá funkcia reshape () sa používa na prevod jednorozmerného poľa na dvojrozmerné pole s 2 riadkami a 5 stĺpcami. Tu sa volá funkcia reshape () pomocou názvu modulu, np. Druhá funkcia reshape () sa používa na prevod jednorozmerného poľa na dvojrozmerné pole s 5 riadkami a 2 stĺpcami. Tu sa funkcia reshape () volá pomocou pomenovaného poľa NumPy np_array.
# Import NumPyimportovať numpy ako np
# Vytvorte pole hodnôt NumPy
np_array = np.arange (10)
# Vytlačte hodnoty poľa NumPy
print ("Hodnoty poľa NumPy: \ n", np_array)
# Upravte pole s 2 riadkami a 5 stĺpcami
new_array = np.zmeniť tvar (np_array, (2, 5))
# Vytlačte zmenené hodnoty
print ("\ nTvarované pole s 2 riadkami a 5 stĺpcami: \ n", new_array)
# Zmena tvaru poľa s 5 riadkami a 2 stĺpcami
new_array = np_array.pretvarovať (5, 2)
# Vytlačte zmenené hodnoty
print ("\ nTvarované pole s 5 riadkami a 2 stĺpcami: \ n", new_array)
Výkon:
Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúci výstup. Prvý výstup zobrazuje hlavné pole. Druhý a tretí výstup zobrazuje zmenené pole.
Príklad 2: Preveďte jednorozmerné pole na trojrozmerné pole
Nasledujúci príklad ukazuje funkciu reshape () na prevod jednorozmerného poľa NumPy na trojrozmerné pole NumPy. Funkcia array () sa v skripte používa na vytvorenie jednorozmerného poľa s 12 prvkami. Funkcia reshape () sa používa na prevod vytvoreného jednorozmerného poľa na trojrozmerné pole. Tu sa funkcia reshape () volá pomocou poľa NumPy s názvom np_array.
# Import NumPyimportovať numpy ako np
# Vytvorte pole NumPy pomocou zoznamu
np_array = np.pole ([7, 3, 9, 11, 4, 23, 71, 2, 32, 6, 16, 2])
# Vytlačte hodnoty poľa NumPy
print ("Hodnoty poľa NumPy: \ n", np_array)
# Vytvorte trojrozmerné pole z jednorozmerného poľa
new_array = np_array.pretvarovať (2, 2, 3)
# Vytlačte zmenené hodnoty
print ("\ nVytvorené hodnoty poľa 3D sú: \ n", new_array)
Výkon:
Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúci výstup. Prvý výstup zobrazuje hlavné pole. Druhý výstup zobrazuje zmenené pole.
Príklad 3: Zmeňte pole NumPy na základe objednania
Nasledujúci príklad ukazuje funkciu reshape () na prevod jednorozmerného poľa NumPy na dvojrozmerné pole NumPy s rôznymi typmi príkazov. Funkcia arange () sa v skripte používa na vytvorenie jednorozmerného poľa s 15 prvkami. Prvá funkcia reshape () sa používa na vytvorenie dvojrozmerného poľa 3 riadkov a 5 stĺpcov s usporiadaním v štýle C. Druhá funkcia reshape () sa používa na vytvorenie dvojrozmerného poľa 3 riadkov a 5 stĺpcov s usporiadaním v štýle Fortran.
# Import NumPyimportovať numpy ako np
# Vytvorte pole hodnôt NumPy
np_array = np.arange (15)
# Vytlačte hodnoty poľa NumPy
print ("Hodnoty poľa NumPy: \ n", np_array)
# Upravte pole na základe usporiadania v štýle C
new_array1 = np.reshape (np_array, (3, 5), order = 'C')
# Vytlačte zmenené hodnoty
print ("\ nTvarované hodnoty poľa 2D založené na usporiadaní v štýle C sú: \ n", new_array1)
# Upravte pole na základe Fortranského usporiadania
new_array2 = np.reshape (np_array, (3, 5), order = 'F')
# Vytlačte zmenené hodnoty
print ("\ nTvarované hodnoty 2D poľa založené na usporiadaní podľa Fortranovho štýlu sú: \ n", new_array2)
Výkon:
Po vykonaní vyššie uvedeného skriptu sa zobrazí nasledujúci výstup. Prvý výstup zobrazuje hlavné pole hodnôt. Druhý výstup zobrazuje hodnoty poľa s usporiadaním podľa riadkov. Tretí výstup zobrazuje hodnoty poľa s usporiadaním podľa stĺpcov.
Záver
V tejto príručke sú popísané spôsoby prevodu poľa z jedného tvaru na iný tvar pomocou funkcie reshape (). Účel použitia funkcie reshape () bude objasnený po nacvičení príkladov tohto tutoriálu a čitatelia budú môcť túto funkciu používať vo svojom skripte python.