Tutoriel Numpy - Appendice NumPy Array
Numpy a aussi la fonction append
pour ajouter des données à un tableau, tout comme l’opération append
à list
en Python. Mais dans certains cas, append
dans NumPy est aussi un peu similaire à la méthode extend
dans list
en Python.
Array Append
Commençons par énumérer la syntaxe de ndarray.append
.
Paramètres d’entrée
nom du paramètre | type de données | Description |
---|---|---|
arr |
comme un tableau | Un tableau pour ajouter un élément |
values |
comme un tableau | Tableau ajouté |
axis |
INT | L’axe le long duquel les valeurs sont ajoutées. |
Faisons quelques exemples,
In[1]: import numpy as np
arrayA = np.arange(12).reshape(3, 4)
arrayB = np.ones((1, 4))
np.append(arrayA, arrayB)
Out[1]: array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 1.,
1., 1., 1.])
Lorsque axis
n’est pas donné, les valeurs arr
et values
sont aplaties avant l’opération. Le résultat sera un tableau 1-D. Dans l’exemple ci-dessus, nous n’avons pas besoin de nous soucier de la forme de deux tableaux donnés.
In[2]: np.append(arrayA, arrayB, axis=0)
Out[2]: array([[0., 1., 2., 3.],
[4., 5., 6., 7.],
[8., 9., 10., 11.],
[1., 1., 1., 1.]])
In[2]: np.append(arrayA, np.ones((1, 3)), axis=0)
---------------------------------------------------------------------------
ValueError Traceback(most recent call last)
<ipython-input-25-fe0fb14f5df8 > in < module > ()
--- -> 1 np.append(arrayA, np.ones((1, 3)), axis=0)
D: \ProgramData\Anaconda3\lib\site-packages\numpy\lib\function_base.py in append(arr, values, axis)
5164 values = ravel(values)
5165 axis = arr.ndim-1
-> 5166 return concatenate((arr, values), axis=axis)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
Quand axis
est égal à 0
, le tableau values
sera ajouté à arr
dans la direction de la colonne. Il augmentera l’erreur ValueError
si deux tableaux donnés n’ont pas la même longueur dans la ligne - ValueError: all the input array dimensions except for the concatenation axis must match exactly
.
Vous pouvez essayer par vous-même d’ajouter les données dans la direction de la ligne avec le paramètre axis=1
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook