Les tableaux multidimensionnels
Les tableaux multidimensionnels
Créer une liste de listes
Le langage Python permet de représenter des données sur plusieurs dimensions en imbriquant des listes. Par exemple, une liste de listes peut représenter un tableau à deux dimensions, organisé en lignes et en colonnes :
Cette structure contient deux lignes et trois colonnes. Elle se rapproche davantage d’un tableau de tableaux C# (int[][]) que d’un tableau multidimensionnel (int[,]) : chaque ligne est une liste distincte et peut contenir un nombre différent d’éléments.
Accéder aux éléments
Nous utilisons deux indices successifs : le premier désigne la ligne et le second la colonne. Comme pour les listes simples, les indices commencent à zéro :
Nous pouvons modifier un élément de la même manière :
Parcourir les éléments
Deux boucles imbriquées permettent de parcourir les lignes, puis les éléments de chaque ligne :
Pour obtenir également les indices des lignes et des colonnes, nous pouvons utiliser enumerate() :
for row_index, row in enumerate(matrix):
for column_index, value in enumerate(row):
print(f"[{row_index}][{column_index}] : {value}")
Initialiser un tableau
Une compréhension de liste permet de créer un tableau dont les éléments sont initialisés à zéro :
row_count = 2
column_count = 3
matrix = [
[0] * column_count
for _ in range(row_count)
]
matrix[0][0] = 10
print(matrix)
# [[10, 0, 0], [0, 0, 0]]
Chaque itération crée une nouvelle liste représentant une ligne. Le nom _ indique ici que la variable d'itération n’est pas utilisée.
Pour créer des lignes indépendantes, il faut éviter la construction suivante :
Elle répète les références à une même liste, au lieu de créer des lignes indépendantes. Une modification apparaît alors dans toutes les lignes :
Les tableaux multidimensionnels avec NumPy
Pour le calcul numérique, la bibliothèque tierce NumPy propose des tableaux multidimensionnels, avec des dimensions régulières et un type commun aux éléments.
import numpy as np
matrix = np.array([
[10, 20, 30],
[40, 50, 60]
])
print(matrix.shape) # (2, 3)
print(matrix[1, 2]) # 60
L'attribut shape indique la taille de chaque dimension. Contrairement aux listes imbriquées, un tableau NumPy permet d’utiliser la syntaxe matrix[row, column].
Il permet également d’appliquer une opération à tous les éléments :
Les listes imbriquées conviennent pour représenter des données structurées simples. Les tableaux NumPy sont adaptés aux calculs numériques portant sur des matrices ou des données à plusieurs dimensions.