Les tableaux à deux dimensions, ou matrices, sont des structures de données fondamentales en programmation, particulièrement cruciales pour des tâches telles que le traitement d’images, l’algèbre linéaire et le développement de jeux. Bien que Python ne possède pas de type de tableau 2D intégré comme certains langages (par exemple, C++), il offre plusieurs manières efficaces et élégantes de les créer et de les manipuler. Cet article explore trois approches populaires : les compréhensions de liste, les boucles imbriquées et la puissante bibliothèque NumPy.
Table des matières
Méthode des compréhensions de liste
Les compréhensions de liste offrent un moyen concis et pythonique de créer des tableaux 2D, particulièrement utile lors de l’initialisation avec des valeurs générées à partir de formules ou de motifs. Elles utilisent des compréhensions de liste imbriquées, la boucle externe gérant les lignes et la boucle interne gérant les colonnes.
# Tableau 3x4 rempli de zéros
rows = 3
cols = 4
array_2d = [[0 for _ in range(cols)] for _ in range(rows)]
print(array_2d) # Sortie : [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
# Tableau 3x3 avec des valeurs basées sur les indices de ligne et de colonne
array_2d = [[i + j for j in range(3)] for i in range(3)]
print(array_2d) # Sortie : [[0, 1, 2], [1, 2, 3], [2, 3, 4]]
# Tableau 2x2 avec des nombres aléatoires (nécessite l'importation de random)
import random
array_2d = [[random.randint(1,10) for _ in range(2)] for _ in range(2)]
print(array_2d) # Sortie : (Exemple) [[7, 2], [9, 5]]
Méthode des boucles imbriquées
Cette approche utilise des boucles for
imbriquées avec range
, itérant sur les lignes et les colonnes pour construire le tableau élément par élément. Elle est plus verbeuse que les compréhensions de liste, mais peut être plus facile à comprendre pour les débutants.
rows = 3
cols = 4
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(0) # Ou toute autre valeur d'initialisation
array_2d.append(row)
print(array_2d) # Sortie : [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
rows = 3
cols = 3
array_2d = []
for i in range(rows):
row = []
for j in range(cols):
row.append(i*cols + j) #Exemple de remplissage avec des nombres séquentiels
array_2d.append(row)
print(array_2d) # Sortie: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
Tableaux NumPy
NumPy est une bibliothèque puissante pour le calcul numérique en Python. Sa fonction numpy.array()
permet la création et la manipulation efficaces de tableaux multidimensionnels. Les tableaux NumPy offrent des performances significativement plus rapides que les listes Python pour les opérations numériques.
import numpy as np
# Tableau 3x4 rempli de zéros
array_2d = np.zeros((3, 4))
print(array_2d)
# Tableau 3x3 rempli de uns
array_2d = np.ones((3, 3))
print(array_2d)
# Tableau 2x2 rempli d'une valeur spécifique
array_2d = np.full((2, 2), 7)
print(array_2d)
# Matrice identité 3x3
array_2d = np.eye(3)
print(array_2d)
# Tableau 2x3 avec des nombres aléatoires entre 0 et 1
array_2d = np.random.rand(2, 3)
print(array_2d)
# Tableau 2x2 avec des entiers aléatoires entre 1 et 10
array_2d = np.random.randint(1, 11, size=(2,2))
print(array_2d)
NumPy offre diverses fonctions pour initialiser des tableaux avec différentes valeurs et motifs, ce qui en fait le choix privilégié pour les calculs numériques impliquant des tableaux 2D. N’oubliez pas d’importer numpy as np
avant d’utiliser ces fonctions.