Numpy : opérations d'ajout, de suppression et de modification d'éléments de tableau (Ndarray)


Ajout, suppression et modification d'éléments de tableau

Array est également un type mutable, et les éléments du tableau peuvent être ajoutés, supprimés et modifiés. Cet article présente en détail les opérations d'ajout et de suppression d'éléments de tableau, et les méthodes de ces deux opérations sont répertoriées. L'opération de modification des éléments du tableau est simple, tant que vous maîtrisez l'index et la tranche, vous pouvez utiliser l'index et la tranche pour obtenir l'élément puis l'affecter.

ajouter un élément

méthode illustrer
numpy.append() Ajouter un élément au tableau
numpy.insert() élément d'insertion de tableau

numpy.append()

Ajouter des éléments à la fin du tableau.

numpy.append(arr, values, axis=None)

Description du paramètre :

  • arr : reçoit array_like, le tableau auquel les éléments doivent être ajoutés.
  • valeurs : Reçoit array_like, les éléments à ajouter à la fin, les formes doivent correspondre. Les dimensions de arr et les valeurs doivent être égales à ajouter
  • axis : reçoit un int, si aucun axe n'est donné, les valeurs arr et seront aplaties avant utilisation.

valeur de retour :

  • ndarray, une copie de l'arr.

Exemple:

# 创建数组a
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
# 创建数组b       
>>> b = np.arange(7,10).reshape(1,3) # a,b维度相同才能追加
>>> b  
array([[7, 8, 9]]) 

Remarque : Les dimensions du tableau (arr) et la valeur supplémentaire (values) doivent être identiques avant de pouvoir être chassées, sinon une erreur sera signalée :

ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

Lorsqu'aucun axe n'est spécifié, une copie est générée et les tableaux a et b sont aplatis et ajoutés.

# 将数组b追加到数组a后
>>> np.append(a, values=b) # 不指定axis时
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9]) 

Lorsque l'axe est spécifié, il sera ajouté en fonction de l'axe, mais les formes doivent correspondre. Lorsque l'axe est spécifié pour l'ajout de lignes, le nombre de colonnes doit être égal, et lorsque l'axe est spécifié pour l'ajout de colonnes, le nombre de lignes doivent être égaux.

>>> np.append(a, values=b, axis=0) # 根据行追加
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9]])

Lorsque l'axe est spécifié, lorsque l'axe est spécifié en tant que colonne, le nombre de lignes est différent, la forme ne correspond pas et ne peut pas être ajoutée, et une ValueError sera signalée !

>>> np.append(a, values=b, axis=1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1

numpy.insert()

Insère une valeur sur l'axe donné et à la position d'index spécifiée.

numpy.insert(arr, obj, values, axis=None)

Description du paramètre :

  • arr : reçoit array_like, le tableau d'entrée.
  • obj : Reçoit un entier ou une séquence d'entiers, la position d'index.
  • valeurs : recevoir array_like, besoin d'insérer la valeur du tableau, besoin de prendre en compte la forme.
  • axis : accepte un entier, l'axe. Les tableaux axiaux sont aplatis s'ils ne sont pas donnés.

valeur de retour :

  • ndarray, une copie de la valeur insérée.

Exemple:

>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> b = np.ones(shape=(2,1))
>>> b
array([[1.],
       [1.]])
       
# 向数组a的行方向,索引为2的行插入数组b,会自动补全
>>> np.insert(a, 2, b, axis=0)
array([[1, 2, 3],
       [4, 5, 6],
       [1, 1, 1],
       [1, 1, 1]])
       
# 向数组a的列方向,索引为2的列插入数组b
>>> np.insert(a, 2, b, axis=1)
array([[1, 2, 1, 1, 3],
       [4, 5, 1, 1, 6]])

supprimer l'élément

méthode illustrer
numpy.delete() Supprimer le sous-tableau d'un axe et renvoyer le nouveau tableau après suppression

numpy.delete()

Renvoie un nouveau tableau avec les sous-tableaux supprimés le long de l'axe.

numpy.delete(arr, obj, axis=None)

Description du paramètre :

  • arr : reçoit array_like, tableau d'entrée.
  • obj : reçoit un index, une tranche ou un tableau d'entiers.
  • axe : recevoir un entier, axe

valeur de retour :

  • ndarray, le tableau dont les éléments ont été supprimés, est une copie.

Exemple:

>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
# 轴向为列,删除索引为2的列      
>>> np.delete(a, 2, axis=1)      
array([[1, 2],
       [4, 5]])

La forme est très importante lors de l'utilisation des données. Si la forme ne correspond pas, une erreur sera signalée. Vous devez comprendre le type d'erreur pour trouver la cause à temps après que le problème se soit produit. De plus, l'axe est également très important.Dans un tableau à deux dimensions : axe = 0 signifie ligne, axe = 1 signifie colonne, ce concept est très déroutant.

modification d'élément

Utilisez la tranche d'index pour obtenir l'élément à la position, puis utilisez "=" pour réaffecter la position.

Syntaxe : arrayname[index]=value ou arrayname[slice]=value

Exemple:

>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
       
# 使用索引获取到该位置后重新赋值即可修改元素       
>>> a[0, 1] = 100
>>> a
array([[ 1, 100, 3],
       [ 4,  5,  6]])     

Je suppose que tu aimes

Origine blog.csdn.net/shield911/article/details/124269761
conseillé
Classement