Tuto Python : transformer une liste en matrice ou l'inverse

Table des matières

Introduction

  1. Convertir la liste des listes en tableau 2D
  2. Convertir une liste de listes comportant un nombre différent d'éléments
    1. Utilisez la fonction standard np.array()
    2. Faites une série de tableaux.
    3. Faire en sorte que les listes soient de longueur égale
  3. Convertir une matrice en liste
  4. Tableau NumPy à une liste
    1. Conversion d'un tableau NumPy unidimensionnel en liste
    2. Conversion d'un tableau multidimensionnel NumPy en liste
  5. Exercice
    1. Exercice 1
    2. Exercice 2
  1. Solution
    1. Exercice 1
    2. Exercice 2

Conclusion

Introduction :

Une liste en Python est une structure de données linéaire qui peut contenir des éléments hétérogènes qu'il n'est pas nécessaire de déclarer et qui est flexible pour se réduire et s'agrandir. D'autre part, un tableau est une structure de données qui peut contenir des éléments homogènes, les tableaux sont implémentés en Python en utilisant la bibliothèque NumPy. Les tableaux nécessitent moins de mémoire que les listes.

La similitude entre un tableau et une liste est que les éléments du tableau et de la liste peuvent être identifiés par leur valeur d'index.

1. Convertir la liste des listes en tableau 2D :

Problème : donné une liste de listes en Python. Comment la convertir en un tableau NumPy 2D ?

Exemple : Convertissez la liste de listes suivante

[[1, 2, 3], [4, 5, 6]]

En un tableau NumPy

[[1 2 3]

[4 5 6]]

Solution : Utilisez la fonction np.array(liste) pour convertir une liste de listes en un tableau NumPy à deux dimensions.

Syntaxe :


# Importation NumPy librairie
import numpy as np
# creation de la liste des listes
liste = [[1, 2, 3], [4, 5, 6]]
# convertire à un tableau Numpy
a = np.array(liste)
# affichage des resultats
print(a)

Résultat d’exécution :

Conseil : la méthode NumPy np.array() prend un itérable en entrée et le convertit en un tableau NumPy.

2. Convertir une liste de listes comportant un nombre différent d'éléments :

Problème : on donne une liste de listes. Les listes internes comportent un nombre variable d'éléments. Comment les convertir en un tableau NumPy ?

Exemple : Disons que vous avez la liste de listes suivante :

[[1, 2, 3], [4, 5], [6, 7, 8]]

Quelles sont les différentes approches pour convertir cette liste de listes en un tableau NumPy ?

La solution : Il existe trois stratégies différentes que vous pouvez utiliser.

1. Utilisez la fonction standard np.array() :

Syntaxe :


import numpy as np
liste = [[10, 20, 30], [40, 90], [60, 70, 80]]
a = np.array(liste)
print(a)

Cela crée un tableau NumPy avec trois éléments - chaque élément est un type de liste.

2. Faites une série de tableaux. :

Syntaxe :


# Importer la bibliothèque NumPy
import numpy as np
# Créer la liste des listes
liste = [[1, 2, 3], [4, 5], [6, 7, 8]]
# Convertissez le en tableau NumPy
a = np.array([np.array(x) for x in liste])
# Imprimer le tableau résultant
print(a)

Ceci est plus logique que la version précédente car elle crée un tableau NumPy de tableaux 1D NumPy (plutôt que des listes 1D Python).

3. Faire en sorte que les listes soient de longueur égale :

Syntaxe :


# Importer la bibliothèque NumPy
import numpy as np
# Créer la liste des listes
liste = [[1, 2, 3], [4, 5], [6, 7, 8]]
# Calculer la longueur de la liste maximale
n = len(max(liste, key=len))
# Faire des listes de longueur égale
liste_2 = [x + [None]*(n-len(x)) for x in liste]
print(liste_2)
# [[1, 2, 3, None], [4, 5, None, None], [6, 7, 8]]
# Convertissez le en tableau NumPy
a = np.array(liste_2)
# Imprimer le tableau résultant
print(a)

Vous utilisez la compréhension de liste pour "tamponner" les valeurs "None" de chaque liste intérieure dont la longueur est inférieure à la longueur maximale.

3. Convertir une matrice en liste :

Syntaxe :


import numpy as np
matrice= np.matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print (matrice.tolist())

Résultat d’exécution :

4. Tableau NumPy à une liste:

La fonction tolist() n'accepte aucun argument. C'est un moyen simple de convertir un tableau en une représentation sous forme de liste.

1. Conversion d'un tableau NumPy unidimensionnel en liste :

Syntaxe :


import numpy as np
# 1d tableau à une liste
arr = np.array([1, 2, 3])
print(f'NumPy tableau:\n{arr}')
liste1 = arr.tolist()
print(f'Liste: {liste1}')

Résultat d’exécution :

2. Conversion d'un tableau multidimensionnel NumPy en liste :

Syntaxe :


import numpy as np
# 2d tableau à une liste
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(f'tableau:\n{arr}')
liste1 = arr.tolist()
print(f'Liste: {liste1}')

Résultat d’exécution :

5. Exercice :

5.1. Exercice 1 :

Convertir la liste suivante à une matrice :

liste = [1,2,3,4,5]

afficher les résultats.

5.2.  Exercice 2 :

Convertir la liste suivante à un tableau 2D :

liste = [[10, 20, 30], [40, 50, 60]]

afficher les résultats.

5.3. Exercice 3 :

Convertir la matrice suivante à une liste :

Matrice = [[9, 8, 7],

  [6, 5, 4],

  [3, 2, 1]]

Afficher les résultats.

6. Solution

6.1. Exercice 1 :

Syntaxe :


liste = [1,2,3,4,5]
import numpy as np
A = np.asmatrix(liste)
print(A)

Résultats de l’affichage :

6.2. Exercice 2 :

Syntaxe :


import numpy as np
liste = [[10, 20, 30], [40, 50, 60]]
a = np.array(liste)
print(a)

Résultats de l’affichage :

6.3. Exercice 3 :

Syntaxe :


import numpy as np
matrice= np.matrix([[9, 8, 7],
[6, 5, 4],
[3, 2, 1]])
print (matrice.tolist())

Résultats de l’affichage :

Conclusion

Dans ce chapitre on a appris à convertir la liste des listes en tableau 2D, en suite convertir une liste des listes comportant un nombre différent d’éléments, par l’utilisation de la fonction standard np.array(), et faire une série de tableau, après comment convertir une matrice en liste, et un tableau NumPy à une liste unidimensionnel et multidimensionnel.

Article publié le 08 Mars 2021par Mouhtat Bilal