Recherche de site Web

numpy.append() en Python


La fonction append() de Python numpy est utilisée pour fusionner deux tableaux. Cette fonction renvoie un nouveau tableau et le tableau d'origine reste inchangé.

Syntaxe de append() de NumPy

La syntaxe de la fonction est :

numpy.append(arr, values, axis=None)
  • Le arr peut être un objet semblable à un tableau ou un tableau NumPy. Les valeurs sont ajoutées à une copie de ce tableau.
  • Les valeurs sont des objets de type tableau et elles sont ajoutées à la fin des éléments de “arr”.
  • L'axe spécifie l'axe le long duquel les valeurs sont ajoutées. Si l'axe n'est pas spécifié, les deux tableaux sont aplatis.

Exemples de numpy.append() en Python

Examinons quelques exemples de la fonction append() de NumPy.

1. Aplatir Deux Tableaux

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[10, 20], [30, 40]])

no axis provided, array elements will be flattened
arr_flat = np.append(arr1, arr2)

print(arr_flat)  # [ 1  2  3  4 10 20 30 40]

2. Fusion le long de l'axe

import numpy as np

arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=0)
print(f'Merged 2x2 Arrays along Axis-0:\n{arr_merged}')

arr_merged = np.append([[1, 2], [3, 4]], [[10, 20], [30, 40]], axis=1)
print(f'Merged 2x2 Arrays along Axis-1:\n{arr_merged}')

Sortie :

Merged 2x2 Arrays along Axis-0:
[[ 1  2]
 [ 3  4]
 [10 20]
 [30 40]]
Merged 2x2 Arrays along Axis-1:
[[ 1  2 10 20]
 [ 3  4 30 40]]
  • Lorsque les tableaux 2x2 sont fusionnés le long de l'axe des x, la taille du tableau de sortie est de 4x2.
  • Lorsque les tableaux 2x2 sont fusionnés le long de l'axe y, la taille du tableau de sortie est de 2x4.

3. Fusionner des tableaux de formes différentes

La fonction append() génère une ValueError si les deux tableaux ont des formes différentes, à l'exclusion de l'axe. Comprenons ce scénario avec un exemple simple.

arr3 = np.append([[1, 2]], [[1, 2, 3], [1, 2, 3]])
print(arr3)

arr3 = np.append([[1, 2]], [[1, 2], [3, 4]], axis=0)
print(arr3)
  • Dans le premier exemple, les éléments du tableau sont aplatis. Donc, même s'ils ont des tailles complètement différentes - 1x2 et 2x3, la méthode append() fonctionne très bien.
  • Dans le deuxième exemple, les formes des tableaux sont 1x2 et 2x2. Comme nous ajoutons le long de l'axe 0, la forme de l'axe 0 peut être différente. Les autres formes doivent être identiques, donc cette fonction append() fonctionnera également bien.

Sortie :

[1 2 1 2 3 1 2 3]

[[1 2]
 [1 2]
 [3 4]]

Examinons un autre exemple où une ValueError sera levée.

>>> import numpy as np
>>> 
>>> arr3 = np.append([[1, 2]], [[1, 2, 3]], axis=0)
Traceback (most recent call last):
  File "", line 1, in 
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numpy/lib/function_base.py", line 4528, in append
    return concatenate((arr, values), axis=axis)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
>>> 

Erreur de valeur dans l'ajout de numpy de Python()

Les formes des tableaux sont 1x2 et 2x3. Comme les formes de l'axe-1 sont différentes, une ValueError est levée. Référence : Documentation API