Séparation des tableaux NumPy

Diviser un tableau NumPy

La division est l'opération inverse du join.

Joining (Fusion) consiste à fusionner plusieurs tableaux en un, Spliting (Division) consiste à diviser un tableau en plusieurs.

Nous utilisons array_split() Diviser un tableau, passez l'array à diviser et le nombre de divisions à diviser à la méthode.

Exemple

Divisez l'array en 3 parties :

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

Exécuter l'exemple

Remarque :La valeur de retour est un tableau contenant trois tableaux.

Si le nombre d'éléments de l'array est inférieur au nombre requis, il ajustera en conséquence à partir de la fin.

Exemple

Divisez l'array en 4 parties :

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

Exécuter l'exemple

Astuce :Nous avons aussi split() La méthode est disponible, mais lorsque le nombre d'éléments de l'array source est insuffisant pour la division, elle ne réglera pas les éléments, comme dans l'exemple ci-dessus,array_split() fonctionne normalement, mais split() échouera.

Division en tableau

array_split() La valeur de retour de la méthode est un tableau contenant chaque division.

Si vous divisez un tableau en 3 tableaux, vous pouvez accéder à eux comme à des éléments de tableau de résultat :

Exemple

Accès aux tableaux divisés :

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

Exécuter l'exemple

Division d'un tableau bidimensionnel

Lors de la division d'un tableau bidimensionnel, utilisez la même syntaxe.

Utilisation array_split() Méthode, entrez l'array à diviser et le nombre de divisions souhaitées.

Exemple

Divisez ce tableau 2-D en trois tableaux 2-D.

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)

Exécuter l'exemple

L'exemple précédent retourne trois tableaux 2-D.

Voyons un autre exemple, cette fois chaque élément du tableau 2-D contient 3 éléments.

Exemple

Divisez ce tableau 2-D en trois tableaux 2-D.

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)

Exécuter l'exemple

L'exemple précédent retourne trois tableaux 2-D.

De plus, vous pouvez spécifier l'axe à diviser.

Les exemples suivants retournent également trois tableaux 2-D, mais ils sont divisés en ligne (axis=1).

Exemple

Divisez ce tableau 2-D en trois tableaux 2-D en ligne.

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)

Exécuter l'exemple

Une autre solution consiste à utiliser avec hstack() Inverse hsplit().

Exemple

Divisez un tableau 2-D en trois tableaux 2-D en utilisant la méthode hsplit().

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)

Exécuter l'exemple

Astuce :vsplit() et dsplit() Vous pouvez utiliser avec vstack() et dstack() Méthodes de remplacement similaires.