NumPy array omformning
- Forrige Side NumPy array form
- Næste Side NumPy array iteration
Arrayomformering
Omfremming betyder ændring af arrayets form.
Arrayets form er antallet af elementer i hver dimension.
Gennem omformering kan vi tilføje eller fjerne dimensioner eller ændre antallet af elementer i hver dimension.
Omdan fra 1-D til 2-D
Eksempel
Konverter følgende 1-D array med 12 elementer til en 2-D array.
Den yderste dimension vil have 4 arrayer, hver indeholder 3 elementer:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
Omdan fra 1-D til 3-D
Eksempel
Konverter følgende 1-D array med 12 elementer til en 3-D array.
Den yderste dimension vil have 2 arrayer, hver indeholder 3 arrayer, hver med 2 elementer:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
Kan vi omformere til hvilken som helst form?
Ja, så længe de nødvendige elementer er ens i begge former.
Vi kan omformere en 1D-array med 8 elementer til en 2D-array med 2 rækker og 4 kolonner, men vi kan ikke omformere den til en 3x3 2D-array, fordi det vil kræve 3x3 = 9 elementer.
Eksempel
Forsøg at konvertere en 1D-array med 8 elementer til en 2D-array med 3 elementer i hver dimension (vil give fejl):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Returnerer en kopi eller en visning?
Eksempel
Tjek om den returnerede array er en kopi eller en visning:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
Det ovenstående eksempel returnerer det oprindelige array, så det er en visning.
Ukendt dimension
Du kan bruge en 'ukendt' dimension.
Dette betyder, at du ikke nødvendigvis skal angive et præcist tal for én af dimensionerne i reshape-metoden.
Tilføje -1
Som værdi vil NumPy beregne dette tal for dig.
Eksempel
Konverter en 1D-array med 8 elementer til en 3D-array med 2x2 elementer:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Bemærk:Vi kan ikke konvertere -1
Til en eller flere dimensioner.
Flattening af arrayer
Flattening af arrayer (Flattening the arrays) betyder at konvertere multidimensionelle arrayer til 1D-arrayer.
Vi kan bruge reshape(-1)
For at gøre dette.
Eksempel
Konverter array til 1D-array:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Bemærk:Der er mange funktioner, der kan ændre numpy flatten, ravel til at ændre arrayets form, og kan også rearrangere elementer som rot90, flip, fliplr, flipud osv. Disse funktioner tilhører numpy's mellem- til avancerede dele.
- Forrige Side NumPy array form
- Næste Side NumPy array iteration