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