NumPy Array omformning
- Föregående Sida NumPy Array form
- Nästa Sida NumPy Array iteration
Arrayomformning
Omformning innebär att ändra arrayens form.
Arrayens form är antalet element per dimension.
Genom omformning kan vi lägga till eller ta bort dimensioner eller ändra antalet element per dimension.
Från 1-D till 2-D omformning
Exempel
Konvertera följande 1D-array med 12 element till en 2D-array.
Den yttre dimensionen kommer att ha 4 arrayer, varje med 3 element:
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)
Från 1-D till 3-D omformning
Exempel
Konvertera följande 1D-array med 12 element till en 3D-array.
Den yttre dimensionen kommer att ha 2 arrayer, varje med 3 arrayer, varje med 2 element:
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 omforma till vilken form som helst?
Ja, så länge de nödvändiga elementen är desamma i båda formerna.
Vi kan omforma en 1D-array med 8 element till en 2D-array med 2 rader och 4 element, men vi kan inte omforma den till en 3x3 2D-array eftersom det skulle kräva 3x3 = 9 element.
Exempel
Försök att konvertera en 1D-array med 8 element till en 2D-array med 3 element per dimension (detta kommer att orsaka ett fel):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Returnerar en kopia eller en vy?
Exempel
Kontrollera om den returnerade arrayen är en kopia eller en vy:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
Exempeln ovan returnerar den ursprungliga arrayen, så det är en vy.
Okänd dimension
Du kan använda en 'okänd' dimension.
Detta innebär att du inte behöver specificera ett exakt nummer för en av dimensionerna i reshape-metoden.
Överför -1
Som värde kommer NumPy att beräkna detta nummer för dig.
Exempel
Konvertera 8 elementets 1D-array till 2x2 elementets 3D-array:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Kommentar:Vi kan inte konvertera -1
Till flera dimensioner.
Flatta arrayer
Att flatta arrayer (Flattening the arrays) innebär att konvertera flerdimensionella arrayer till 1D-arrayer.
Vi kan använda reshape(-1)
För att göra detta.
Exempel
Konvertera array till 1D-array:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Kommentar:Det finns många funktioner som kan ändra numpy flatten, ravel arrayform, och kan omordna element rot90, flip, fliplr, flipud osv. Dessa funktioner tillhör numpys mellannivå till avancerad del.
- Föregående Sida NumPy Array form
- Nästa Sida NumPy Array iteration