Tableau de fractionnement NumPy
Fractionner des tableaux NumPy
Le fractionnement est l'opération inverse de l'assemblage.
La jointure fusionne plusieurs tableaux en un seul et le fractionnement divise un tableau en plusieurs.
Nous utilisons array_split()
pour diviser les tableaux, nous lui transmettons le tableau que nous voulons diviser et le nombre de divisions.
Exemple
Divisez le tableau en 3 parties :
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 3)
print(newarr)
Remarque : La valeur de retour est un tableau contenant trois tableaux.
Si le tableau contient moins d'éléments que nécessaire, il s'ajustera à partir de la fin en conséquence.
Exemple
Divisez le tableau en 4 parties :
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr =
np.array_split(arr, 4)
print(newarr)
Remarque : Nous avons également la méthode split()
disponible mais elle n'ajustera pas les éléments lorsque les éléments sont moins nombreux dans le tableau source pour le fractionnement comme dans l'exemple ci-dessus, array_split()
a fonctionné correctement mais
split()
échouerait.
Diviser en tableaux
La valeur de retour de la array_split()
méthode est un tableau contenant chacune des divisions sous forme de tableau.
Si vous divisez un tableau en 3 tableaux, vous pouvez y accéder à partir du résultat comme n'importe quel élément de tableau :
Exemple
Accédez 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])
Fractionnement de tableaux 2D
Utilisez la même syntaxe lors du fractionnement de tableaux 2D.
Utilisez la array_split()
méthode, transmettez le tableau que vous souhaitez diviser et le nombre de divisions que vous souhaitez effectuer.
Exemple
Divisez le 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)
L'exemple ci-dessus renvoie trois tableaux 2D.
Regardons un autre exemple, cette fois chaque élément des tableaux 2D contient 3 éléments.
Exemple
Divisez le 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)
L'exemple ci-dessus renvoie trois tableaux 2D.
De plus, vous pouvez spécifier l'axe autour duquel vous souhaitez effectuer la scission.
L'exemple ci-dessous renvoie également trois tableaux 2D, mais ils sont divisés le long de la ligne (axe = 1).
Exemple
Divisez le tableau 2-D en trois tableaux 2-D le long des lignes.
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)
Une solution alternative utilise l' hsplit()
opposé de
hstack()
Exemple
Utilisez la hsplit()
méthode pour diviser le tableau 2-D en trois tableaux 2-D le long des lignes.
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)
Remarque : des alternatives similaires à vstack()
et
dstack()
sont disponibles en tant que
vsplit()
et
dsplit()
.