Python - Matrice

Matrix est un cas particulier de tableau bidimensionnel où chaque élément de données est strictement de même taille. Ainsi, chaque 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 l'avons déjà discuté dans le chapitre précédent, nous nous concentrerons sur les opérations de structure de données spécifiques aux matrices dans ce chapitre.

Nous utilisons également le package numpy pour la manipulation des données matricielles.

Exemple de matrice

Prenons le cas de l'enregistrement de la température pendant 1 semaine mesurée le matin, le midi, le soir et le midi. Il peut être présenté comme une matrice 7X5 en utilisant un tableau et la méthode de remodelage 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)

Les données ci-dessus peuvent être représentées sous forme de 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éder aux valeurs dans une matrice

Les éléments de données d'une matrice sont accessibles à l'aide des index. La méthode d'accès est la même que la façon dont les données sont accessibles dans un tableau à deux dimensions.

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])

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

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

Ajouter une ligne

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)

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']]

Ajouter 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 à partir du début.

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)

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 d'une matrice

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

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)

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 d'une matrice

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

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)

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 dans une matrice

Pour mettre à jour les valeurs dans la ligne d'une matrice, nous réaffectons simplement les valeurs à l'index de la ligne. Dans l'exemple ci-dessous, toutes les valeurs des données de thrursday sont marquées comme zéro. L'index de cette ligne est 3.

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)

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' '0' '0' '0' '0']
 ['Fri' '18' '17' '23' '22']
 ['Sat' '12' '22' '20' '18']
 ['Sun' '13' '15' '19' '16']]