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()
.