English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Coupures des tableaux NumPy

Le Spliting est l'opération inverse du Joining.
Joining (Fusion) consiste à combiner plusieurs arrays en un seul, Spliting (Découpage) consiste à découper un array en plusieurs.

Fonction de découpe de base des arrays suivante :

FonctionArray et opérations
splitDivisez un array en plusieurs sous-arrays
hsplitDivisez un array en plusieurs sous-arrays horizontalement (par colonnes)
vsplitDivisez un array en plusieurs sous-arrays verticalement (par lignes)

numpy.split

La fonction numpy.split coupe l'array le long d'un axe spécifique en sous-arrays, avec le format suivant :

numpy.split(ary, indices_or_sections, axis)

Description des paramètres :

ary : l'array à découperindices_or_sections : c'est un entier, il découpe en moyenne, s'il s'agit d'un tableau, il s'agit des positions de coupe le long de l'axe (ouverte à gauche et fermée à droite) axis : le long de quelle dimension effectuer la coupe, par défaut 0, coupe horizontale. Si1Lorsque,

import numpy as np
a = np.arange(15)
print ('Premier tableau :')
print (a)
print ('\n')
print ('Diviser l'array en trois sous-arrays de même taille :')
b = np.split(a,5)
print (b)
print ('\n')
print ('Indiquer la position d'un array dans un array unidimensionnel :')
b = np.split(a,[4,7])
print (b)

Résultat de la sortie :

Premier tableau :
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]]
Diviser l'array en trois sous-arrays de même taille :
[array([0, 1, 2))3, 4, 5))6, 7, 8)) 9, 10, 11))12, 13, 14]]
Indiquer la position d'un array dans un array unidimensionnel :
[array([0, 1, 2, 3))4, 5, 6)) 7, 8, 9, 10, 11, 12, 13, 14]]

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

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

Résultat de la sortie :

[array([1, 2))3, 4))5))6]]
Attention :En utilisant la méthode split(), lorsque le nombre d'éléments dans l'array source est insuffisant pour le découpage, il ne modifie pas les éléments, comme dans l'exemple précédent, array_split() fonctionne normalement, mais split() échoue.

numpy.hsplit

La fonction numpy.hsplit est utilisée pour couper les tableaux horizontalement, en divisant l'array original en plusieurs tableaux de même forme en spécifiant le nombre de tableaux à retourner.

import numpy as np
harr = np.floor(10 * np.random.random(2, 8))
print ('Array d'origine :')
print(harr)
 
print ('Après séparation :')
print(np.hsplit(harr, 4))

Résultat de la sortie :

Array d'origine :
[7. 9. 2. 6. 8. 7. 4. 5.]
 [2. 5. 3. 5. 9. 4. 1. 3.]]
Après séparation :
[array([7. 9,
       [2. 5.]]2. 6,
       [3. 5.]]8. 7,
       [9. 4.]]4. 5,
       [1. 3.]

numpy.vsplit

numpy.vsplit coupe le long de l'axe vertical, son mode de coupe est le même que hsplit.

import numpy as np
a = np.arange(16).reshape(4,4)
print ('Premier tableau :')
print (a)
print ('\n')
print ('Coupure verticale :')
b = np.vsplit(a,2)
print (b)

Résultat de la sortie :

Premier tableau :
[ 0 1 2 3]]
 [ 4 5 6 7]]
 [ 8 9 10 11]]
 [12 13 14 15]]
Coupure verticale :
[array([[ 1, 2, 3],
       [4, 5, 6, 7]] 8, 9, 10, 11],
       [12, 13, 14, 15]])]