Matrices

4 h Niveau 5

Les matrices sont un cas particulier de tableaux à deux dimensions où chaque élément de données a strictement la même taille. Ainsi, toute matrice est également un tableau à deux dimensions, mais pas l'inverse.

Les matrices sont des structures de données très importantes pour de nombreux calculs mathématiques et scientifiques. Comme nous avons déjà abordé la structure de données des tableaux bidimensionnels dans le chapitre précédent, nous allons nous concentrer sur les opérations de structure de données spécifiques aux matrices dans ce chapitre.

Nous utiliserons également le paquetage numpy pour la manipulation des données matricielles.

Exemple de matrice

Considérons le cas d'un enregistrement de la température pendant une semaine, mesurée le matin, à midi, le soir et la nuit. Il peut être présenté comme une matrice 7X5 en utilisant un tableau et la méthode reshape disponible dans numpy.

from numpy import * 
a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
    ['Wed',15,21,20,19],['Thu',11,20,22,21],
    ['Fri',18,17,23,22],['Sat',12,22,20,18],
    ['Sun',13,15,19,16]])
m = reshape(a,(7,5))
print(m)

Réponse

Les données ci-dessus peuvent être représentées comme un tableau à deux dimensions comme ci-dessous :

[
    ['Mon' '18' '20' '22' '17']
    ['Tue' '11' '18' '21' '18']
    ['Wed' '15' '21' '20' '19']
    ['Thu' '11' '20' '22' '21']
    ['Fri' '18' '17' '23' '22']
    ['Sat' '12' '22' '20' '18']
    ['Sun' '13' '15' '19' '16']
]

Accès aux valeurs

On peut accéder aux éléments de données d'une matrice en utilisant les index. La méthode d'accès est la même que celle utilisée pour accéder aux données dans un tableau à deux dimensions.

Exemple

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
    ['Wed',15,21,20,19],['Thu',11,20,22,21],
    ['Fri',18,17,23,22],['Sat',12,22,20,18],
    ['Sun',13,15,19,16]])

# Print data for Wednesday
print(m[2])

# Print data for friday evening
print(m[4][3])

Résultat

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :

['Wed', 15, 21, 20, 19]
23

Ajouter une ligne

Pour ajouter une ligne dans la matrice, nous devons utiliser la méthode apend().

Exemple

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
    ['Wed',15,21,20,19],['Thu',11,20,22,21],
    ['Fri',18,17,23,22],['Sat',12,22,20,18],
    ['Sun',13,15,19,16]])
m_r = append(m,[['Avg',12,15,13,11]],0)

print(m_r)

Réponse

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :

[
    ['Mon' '18' '20' '22' '17']
    ['Tue' '11' '18' '21' '18']
    ['Wed' '15' '21' '20' '19']
    ['Thu' '11' '20' '22' '21']
    ['Fri' '18' '17' '23' '22']
    ['Sat' '12' '22' '20' '18']
    ['Sun' '13' '15' '19' '16']
    ['Avg' '12' '15' '13' '11']
]

Ajout d'une colonne

Nous pouvons ajouter une colonne à une matrice en utilisant la méthode insert(). Ici nous devons mentionner l'index où nous voulons ajouter la colonne et un tableau contenant les nouvelles valeurs des colonnes ajoutées. Dans l'exemple ci-dessous nous ajoutons une nouvelle colonne à la cinquième position depuis le début.

Exemple

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
    ['Wed',15,21,20,19],['Thu',11,20,22,21],
    ['Fri',18,17,23,22],['Sat',12,22,20,18],
    ['Sun',13,15,19,16]])
m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)

print(m_c)

Résultat

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :

[
   ['Mon' '18' '20' '22' '17' '1']
   ['Tue' '11' '18' '21' '18' '2']
   ['Wed' '15' '21' '20' '19' '3']
   ['Thu' '11' '20' '22' '21' '4']
   ['Fri' '18' '17' '23' '22' '5']
   ['Sat' '12' '22' '20' '18' '6']
   ['Sun' '13' '15' '19' '16' '7']
]

Supprimer une ligne

Nous pouvons supprimer une ligne d'une matrice en utilisant la méthode delete(). Nous devons spécifier l'index de la ligne et également la valeur de l'axe qui est 0 pour une ligne et 1 pour une colonne.

Exemple

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
    ['Wed',15,21,20,19],['Thu',11,20,22,21],
    ['Fri',18,17,23,22],['Sat',12,22,20,18],
    ['Sun',13,15,19,16]])
m = delete(m,[2],0)

print(m)

Réponse

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :

[
   ['Mon' '18' '20' '22' '17']
   ['Tue' '11' '18' '21' '18']
   ['Thu' '11' '20' '22' '21']
   ['Fri' '18' '17' '23' '22']
   ['Sat' '12' '22' '20' '18']
   ['Sun' '13' '15' '19' '16']
]

Supprimer une colonne

Nous pouvons supprimer une colonne d'une matrice en utilisant la méthode delete(). Nous devons spécifier l'index de la colonne et également la valeur de l'axe qui est 0 pour une ligne et 1 pour une colonne.

Exemple

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
    ['Wed',15,21,20,19],['Thu',11,20,22,21],
    ['Fri',18,17,23,22],['Sat',12,22,20,18],
    ['Sun',13,15,19,16]])
m = delete(m,s_[2],1)

print(m)

Réponse

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant :

[
    ['Mon' '18' '22' '17']
    ['Tue' '11' '21' '18']
    ['Wed' '15' '20' '19']
    ['Thu' '11' '22' '21']
    ['Fri' '18' '23' '22']
    ['Sat' '12' '20' '18']
    ['Sun' '13' '19' '16']
]

Mettre à jour une ligne

Pour mettre à jour les valeurs de la ligne d'une matrice, il suffit de réaffecter les valeurs à l'indice de la ligne. Dans l'exemple ci-dessous, toutes les valeurs des données du jeudi sont marquées comme étant nulles. L'indice de cette ligne est 3.

Exemple

from numpy import * 
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
    ['Wed',15,21,20,19],['Thu',11,20,22,21],
    ['Fri',18,17,23,22],['Sat',12,22,20,18],
    ['Sun',13,15,19,16]])
m[3] = ['Thu',0,0,0,0]

print(m)

Réponse

Lorsque le code çi-dessus est exécuté, il produit le résultat suivant :

[
    ['Mon' '18' '20' '22' '17']
    ['Tue' '11' '18' '21' '18']
    ['Wed' '15' '21' '20' '19']
    ['Thu' '0' '0' '0' '0']
    ['Fri' '18' '17' '23' '22']
    ['Sat' '12' '22' '20' '18']
    ['Sun' '13' '15' '19' '16']
]
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus