HOWTO · Python
Comment ajouter un tableau 2D en Python
Apprenez à ajouter des valeurs à un tableau 2D en Python à l'aide de listes natives et de NumPy. Ce guide couvre des méthodes telles que append(), extend(), numpy.append() et bien d'autres, avec des exemples pour les lignes, les colonnes et les données dynamiques. Parfait pour la manipulation de données et le calcul numérique !
Sur cette page
L’ajout de valeurs à un tableau 2D en Python est une opération courante dans la manipulation de données, le calcul numérique et les applications de science des données. Que vous travailliez avec des listes Python natives ou que vous utilisiez NumPy pour l’efficacité, il existe plusieurs méthodes pour ajouter des lignes, des colonnes ou des valeurs individuelles à un tableau 2D. Ce guide explore différentes techniques, leurs avantages et leurs cas d’utilisation.
Utiliser des listes imbriquées (listes Python)
Les listes intégrées de Python peuvent représenter des tableaux 2D comme des listes de listes. La façon la plus simple d’ajouter des valeurs est d’utiliser la méthode append().
Ajouter une nouvelle ligne
array = [[1, 2, 3], [4, 5, 6]]
array.append([7, 8, 9])
print(array)
Sortie :
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
Cette méthode ajoute une toute nouvelle ligne à la liste existante. La méthode append() est utile lorsque vous souhaitez étendre dynamiquement une liste 2D en ajoutant plus de données au fil du temps. Cependant, notez que toutes les lignes peuvent devoir avoir la même longueur pour le traitement de données structurées.
Ajouter une valeur à une ligne existante
array[0].append(10)
print(array)
Sortie :
[[1, 2, 3, 10],
[4, 5, 6],
[7, 8, 9]]
Cette méthode modifie une ligne spécifique en ajoutant un nouvel élément. Contrairement à l’ajout d’une nouvelle ligne, cette opération n’affecte que la ligne spécifiée, ce qui peut conduire à une structure de colonnes irrégulière si elle n’est pas gérée correctement.
Utiliser la compréhension de liste
Les compréhensions de liste offrent un moyen élégant d’ajouter des valeurs à toutes les lignes d’une liste 2D.
array = [[1, 2], [3, 4]]
array = [row + [5] for row in array]
print(array)
Sortie :
[[1, 2, 5],
[3, 4, 5]]
Cette méthode ajoute efficacement une nouvelle colonne à chaque ligne. En itérant sur chaque ligne et en ajoutant une valeur, la compréhension de liste garantit que la nouvelle colonne est ajoutée uniformément à toutes les lignes.
Utiliser des tableaux NumPy
NumPy fournit des méthodes puissantes pour manipuler et ajouter efficacement des valeurs à des tableaux 2D. Cependant, lorsqu’il s’agit de grands ensembles de données avec de nombreuses valeurs vides, l’utilisation d’une matrice creuse peut réduire considérablement la consommation de mémoire. En savoir plus sur les [matrices creuses en Python]({{relref “/HowTo/Python/sparse matrix in python.en.md”}}) et sur la manière dont elles optimisent le stockage.
Utiliser numpy.append()
import numpy as np
array = np.array([[1, 2], [3, 4]])
array = np.append(array, [[5, 6]], axis=0)
print(array)
Sortie :
[[1 2]
[3 4]
[5 6]]
Cette méthode ajoute une nouvelle ligne à un tableau NumPy. La fonction numpy.append() est utile lorsqu’il s’agit de grands ensembles de données, car elle assure une gestion efficace de la mémoire par rapport aux listes Python natives.
Pour ajouter une nouvelle colonne :
array = np.append(array, [[7], [8], [9]], axis=1)
print(array)
Sortie :
[[1 2 7]
[3 4 8]
[5 6 9]]
Après avoir ajouté des valeurs, vous devrez peut-être enregistrer le tableau modifié dans un fichier pour une utilisation ultérieure. Vous pouvez consulter notre guide sur l’[écriture de tableaux dans un fichier texte]({{relref “/HowTo/Python/write array to a textfile.en.md”}}) pour plus de détails sur le stockage efficace des tableaux NumPy.
Si vous rencontrez des erreurs d’indexation lors de la modification de tableaux NumPy, consultez notre guide sur la correction des erreurs ‘Too Many Indices for Array’ pour résoudre les erreurs courantes.
Utiliser numpy.hstack() et numpy.vstack()
Les fonctions hstack() et vstack() de NumPy sont conçues pour ajouter efficacement des colonnes et des lignes.
Utiliser hstack() pour ajouter une colonne
import numpy as np
array = np.array([[1, 2], [3, 4]])
new_column = np.array([[5], [6]])
result = np.hstack((array, new_column))
print(result)
Sortie :
[[1 2 5]
[3 4 6]]
Utiliser vstack() pour ajouter une ligne
new_row = np.array([[5, 6]])
result = np.vstack((array, new_row))
print(result)
Sortie :
[[1 2]
[3 4]
[5 6]]
Ces méthodes sont efficaces et recommandées lorsque l’on travaille avec de grands ensembles de données. Contrairement à numpy.append(), qui peut nécessiter la restructuration de l’ensemble du tableau, hstack() et vstack() sont optimisés pour les extensions par colonne et par ligne, respectivement.
Si vous travaillez avec des données numériques structurées, vous devrez peut-être également transposer des matrices pour remodeler efficacement les données. Consultez notre article sur la transposition de matrices en Python.
Utiliser l’opérateur +=
array = [[1, 2], [3, 4]]
array += [[5, 6]]
print(array)
Sortie :
[[1, 2],
[3, 4],
[5, 6]]
Cette méthode est un raccourci pour append(), mais elle modifie la liste en place. L’utilisation de += garantit que les nouvelles lignes sont ajoutées directement sans créer de nouvelle référence, ce qui en fait une approche efficace pour gérer de petites listes 2D.
Utiliser extend() pour ajouter plusieurs lignes
array = [[1, 2], [3, 4]]
array.extend([[5, 6], [7, 8]])
print(array)
Sortie :
[[1, 2],
[3, 4],
[5, 6],
[7, 8]]
Ceci est utile lorsque vous ajoutez plusieurs lignes à la fois. La méthode extend() est particulièrement utile lors de la fusion de données provenant de différentes sources dans une seule liste 2D.
Si vous devez stocker la liste mise à jour sous forme de fichier CSV, vous pouvez consulter notre guide sur l’écriture de listes dans un fichier CSV en Python.
Utiliser insert() pour ajouter une ligne à un index spécifique
array = [[1, 2], [3, 4]]
array.insert(1, [5, 6])
print(array)
Sortie :
[[1, 2],
[5, 6],
[3, 4]]
La méthode insert() permet un placement précis des lignes au sein du tableau. Ceci est utile lorsque l’on travaille avec des ensembles de données ordonnés où de nouvelles entrées doivent être insérées à des positions spécifiques sans perturber la structure globale.
Utiliser des boucles imbriquées pour le remplissage dynamique de tableaux 2D
array = []
for i in range(3):
row = []
for j in range(2):
row.append(i * j)
array.append(row)
print(array)
Sortie :
[[0, 0],
[0, 1],
[0, 2]]
Cette méthode est utile pour générer dynamiquement des tableaux 2D structurés. L’utilisation de boucles imbriquées offre un contrôle total sur la façon dont les données sont remplies, ce qui la rend idéale pour générer de manière programmatique des matrices et des structures basées sur des grilles.
Conclusion
Python offre plusieurs façons d’ajouter des valeurs à un tableau 2D. Si vous travaillez avec des listes standard, append(), extend() et les compréhensions de liste sont des choix efficaces. Pour les opérations numériques à haute performance, les append(), hstack() et vstack() de NumPy offrent des solutions optimisées. La bonne méthode dépend de si vous manipulez de petites listes ou des données numériques à grande échelle.
Comparaison des méthodes
| Méthode | Convient pour | Flexibilité | Performance |
|---|---|---|---|
append() |
Ajouter une ligne (liste Python) | Élevée | Modérée |
list comprehension |
Ajouter une colonne (liste Python) | Modérée | Élevée |
numpy.append() |
Ajouter des lignes/colonnes (NumPy) | Élevée | Élevée |
hstack() / vstack() |
Ajouter des lignes/colonnes efficacement (NumPy) | Élevée | Très élevée |
Opérateur += |
Ajout rapide d’une ligne (liste Python) | Faible | Élevée |
extend() |
Ajouter plusieurs lignes (liste Python) | Modérée | Élevée |
insert() |
Insérer à un index spécifique (liste Python) | Modérée | Modérée |
| Boucles imbriquées | Génération dynamique de données | Élevée | Variable |