NumPy array dela upp

Dela upp NumPy-arrayer

Delning är den omvända operationen för fusion.

Fusion (Joining) innebär att flera arrayer samlas till en, delning (Spliting) innebär att en array delas upp i flera.

Vi använder array_split() Dela upp arrayen, skicka den array du vill dela upp och antalet delar till den.

Exempel

Dela upp arrayen i 3 delar:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr)

Kör exempel

Kommentar:Returvärdet är en array som innehåller tre arrayer.

Om det finns färre element i arrayen än det krävs, kommer det att justera från slutet.

Exempel

Dela upp arrayen i 4 delar:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)

Kör exempel

Tips:Vi har också split() Metoden är tillgänglig, men när elementen i källarrayen är få för att dela upp kommer den inte att justera elementen, som i föregående exempel,array_split() Fungerar normalt, men split() kommer att misslyckas.

Dela upp i arrayer

array_split() Metodens returvärde är en array som innehåller varje delad array.

Om du delar upp en array i 3 delar kan du komma åt dem som om de var vilka arrayelement som helst i resultatet:

Exempel

Åtkomna delade arrayer:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])

Kör exempel

Dela upp tvådimensionella arrayer

Använd samma syntax när du delar upp tvådimensionella arrayer.

Använd array_split() Metoden tar emot ett att dela upp och ett önskat antal delar.

Exempel

Dela upp denna 2-D array i tre 2-D array.

import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)

Kör exempel

I föregående exempel returneras tre 2-D array.

Låt oss se ett annat exempel, denna gång innehåller varje element i 2-D array 3 element.

Exempel

Dela upp denna 2-D array i tre 2-D array.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)

Kör exempel

I föregående exempel returneras tre 2-D array.

Du kan också specificera vilket axel du vill dela upp.

Nedanstående exempel returnerar också tre 2-D array, men de är delade längs raderna (axis=1).

Exempel

Dela upp denna 2-D array i tre 2-D array längs raderna.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)

Kör exempel

En annan lösning är att använda hstack() Omvänd hsplit().

Exempel

Använd hsplit() metoden för att dela upp 2-D array längs raderna i tre 2-D array.

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)

Kör exempel

Tips:vsplit() och dsplit() Det kan användas med vstack() och dstack() Liknande alternativmetoder.