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

Fusion des tableaux NumPy

Les fonctions couramment utilisées pour connecter des arrays sont les suivantes :

FonctionDescription
concatenateConnecter une séquence d'arrays suivant un axe existant
stackAjouter une série d'arrays suivant un nouveau axe.
hstackEmpiler horizontalement les arrays de la séquence (direction des colonnes)
vstackEmpiler verticalement les arrays de la séquence (direction des lignes)
dstackEmpiler verticalement, la hauteur est la même que la profondeur

Connecter des arrays suivant un axe (numpy.concatenate)

La connexion signifie que le contenu de deux ou plusieurs arrays est placé dans un seul array.
Dans SQL, nous connectons des tables sur la base d'une clé, tandis que dans NumPy, nous connectons des arrays suivant un axe.

La fonction numpy.concatenate est utilisée pour connecter deux ou plusieurs arrays de forme identique le long d'un axe spécifié, le format est le suivant :

numpy.concatenate((a1, a2, ...), axis)

Description des paramètres :

a1, a2, ... : arrays de type identiqueaxis : l'axe suivant lequel les tableaux sont connectés, par défaut 0

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Premier tableau :')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Deuxième tableau :')
print(b)
print('\n')
 # Les dimensions des deux tableaux sont identiques
print ('Connecter deux tableaux : sur l'axe 0')
print (np.concatenate((a,b)))
print('\n')
print ('sur l'axe 1 Connecter deux tableaux :')
print (np.concatenate((a,b),axis = 1))

Le résultat de la sortie est :

[[ 5 6 7 8 9]
[ 7 8 9 10 11]]
Connecter deux tableaux : sur l'axe 0
[[ 1 2 3 4 5]
[ 3 4 5 6 7]
[ 5 6 7 8 9]
[ 7 8 9 10 11]]
A longueur d'axe 1 Connecter deux tableaux :
[[ 1 2 3 4 5 5 6 7 8 9]
[ 3 4 5 6 7 7 8 9 10 11]]

Utiliser la fonction empilage pour connecter des tableaux (numpy.stack)

La fonction numpy.stack est utilisée pour connecter une séquence d'arrays le long d'un nouveau axe, le format est le suivant :

numpy.stack(arrays, axis)

Description des paramètres :

séquence d'arrays de forme identiqueaxis : retourne l'axe des tableaux, les tableaux sont empilés suivant cet axe

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Premier tableau :')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Deuxième tableau :')
print(b)
print('\n')
print ('empiler deux tableaux : sur l'axe 0')
print (np.stack((a,b),0))
print('\n')
print ('sur l'axe 1 empiler deux tableaux :')
print (np.stack((a,b),1))

Le résultat de la sortie est le suivant :

Premier tableau :
[[1 2 3 4 5]
[3 4 5 6 7]]
Deuxième tableau :
[[ 5 6 7 8 9]
[ 7 8 9 10 11]]
Empilement de deux tableaux le long de l'axe 0 :
[[[ 1 2 3 4 5]
[ 3 4 5 6 7]]
[[ 5 6 7 8 9]
[ 7 8 9 10 11]]]
A longueur d'axe 1 Empilement de deux tableaux :
[[[ 1 2 3 4 5]
[ 5 6 7 8 9]]
[[ 3 4 5 6 7]
[ 7 8 9 10 11]]]

Empilement des tableaux le long de la ligne (numpy.hstack)

numpy.hstack est une variante de la fonction numpy.stack, elle génère des tableaux en empilant horizontalement.

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Premier tableau :')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Deuxième tableau :')
print(b)
print('\n')
print('Empilement horizontal :')
c = np.hstack((a, b))
print(c)
print('\n')

Le résultat de la sortie est le suivant :

Premier tableau :
[[1 2 3 4 5]
 [3 4 5 6 7]]
Deuxième tableau :
[[ 5 6 7 8 9]
 [ 7 8 9 10 11]]
Empilement horizontal :
[[ 1 2 3 4 5 5 6 7 8 9]
 [ 3 4 5 6 7 7 8 9 10 11]]

Empilement des tableaux le long de la colonne (numpy.vstack)

numpy.vstack est une variante de la fonction numpy.stack, elle génère des tableaux en empilant verticalement.

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
print('Premier tableau :')
print(a)
print('\n')
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
print('Deuxième tableau :')
print(b)
print('\n')
print('Empilement vertical :')
c = np.vstack((a, b))
print(c)

Le résultat de la sortie est :

Premier tableau :
[[1 2 3 4 5]
 [3 4 5 6 7]]
Deuxième tableau :
[[ 5 6 7 8 9]
 [ 7 8 9 10 11]]
Empilement vertical :
[[ 1 2 3 4 5]
 [ 3 4 5 6 7]
 [ 5 6 7 8 9]
 [ 7 8 9 10 11]]

Empilement le long de la hauteur (numpy.dstack)

NumPy fournit une fonction d'assistance : dstack() empile le long de la hauteur, la hauteur est la même que la profondeur.

import numpy as np
a = np.array([1,2,3,4,5],[3,4,5,6,7]]]
b = np.array([5,6,7,8,9],[7,8,9,10,11]]]
arr = np.dstack((a, b))
print(arr)

Le résultat de la sortie est :

[[[ 1 5]
  [ 2 6]
  [ 3 7]
  [ 4 8]
  [ 5 9]]
 [[ 3 7]
  [ 4 8]
  [ 5 9]
  [ 6 10]
  [ 7 11]]]