NumPy Splitsing Array


NumPy-arrays splitsen

Splitsen is de omgekeerde bewerking van Joining.

Samenvoegen voegt meerdere arrays samen tot één en Splitsen breekt één array in meerdere.

We gebruiken array_split()voor het splitsen van arrays, we geven het de array door die we willen splitsen en het aantal splitsingen.

Voorbeeld

Splits de array in 3 delen:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr)

Opmerking: de geretourneerde waarde is een array met drie arrays.

Als de array minder elementen heeft dan vereist, wordt deze vanaf het einde dienovereenkomstig aangepast.

Voorbeeld

Splits de array in 4 delen:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 4)

print(newarr)

Opmerking: we hebben ook de methode split()beschikbaar, maar deze zal de elementen niet aanpassen wanneer elementen minder in de bronarray staan ​​om te splitsen, zoals in het bovenstaande voorbeeld, array_split()goed werkte maar split()zou mislukken.



Opsplitsen in arrays

De retourwaarde van de array_split()methode is een array die elk van de splitsingen als een array bevat.

Als je een array in 3 arrays splitst, kun je ze openen vanuit het resultaat, net als elk array-element:

Voorbeeld

Toegang tot de gesplitste arrays:

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])

2D-arrays splitsen

Gebruik dezelfde syntaxis bij het splitsen van 2D-arrays.

Gebruik de array_split()methode, geef de array door die u wilt splitsen en het aantal splitsingen dat u wilt doen.

Voorbeeld

Splits de 2D-array in drie 2D-arrays.

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)

Het bovenstaande voorbeeld retourneert drie 2D-arrays.

Laten we naar een ander voorbeeld kijken, dit keer bevat elk element in de 2D-arrays 3 elementen.

Voorbeeld

Splits de 2D-array in drie 2D-arrays.

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)

Het bovenstaande voorbeeld retourneert drie 2D-arrays.

Daarnaast kun je aangeven om welke as je de splitsing wilt doen.

Het onderstaande voorbeeld retourneert ook drie 2D-arrays, maar ze zijn gesplitst langs de rij (as=1).

Voorbeeld

Splits de 2D-array in drie 2D-arrays langs rijen.

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)

Een alternatieve oplossing gebruikt het hsplit()tegenovergestelde van hstack()

Voorbeeld

Gebruik de hsplit()methode om de 2D-array op te splitsen in drie 2D-arrays langs rijen.

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)

Opmerking: Vergelijkbare alternatieven voor vstack()en dstack()zijn beschikbaar als vsplit()en dsplit().