Matrices

En mathématiques, on utilise des tableaux de nombres à deux dimensions appelés matrices. On utilsera ici des listes de listes.

Une matrice à 4 lignes et 2 colonnes :

In [1]:
A = [[1,2],[3,4],[5,6],[7,8]]
print(A)
[[1, 2], [3, 4], [5, 6], [7, 8]]

Pour obtenir le nombre de lignes :

In [2]:
len(A)
Out[2]:
4

Pour obtenir le nombre de colonnes :

In [3]:
len(A[0])
Out[3]:
2

Une matrice à 2 lignes et 3 colonnes :

In [4]:
B = [[1,2,3],[6,4,5]]
print(B)
print(len(B), ' lignes et ', len(B[0]), ' colonnes')
[[1, 2, 3], [6, 4, 5]]
2  lignes et  3  colonnes

Pour accéder à une ligne :

In [5]:
print(B[0])
[1, 2, 3]

Pour accéder à un élément de la matrice :

In [6]:
print(B[0][0] , B[1][2] , B[1][0])
1 5 6

Exercice 1

Ecrire une fonction somme qui prend en paramètre une matrice et retourne la somme de tous ses éléments.

In [7]:
def somme(M):
    # M est une liste de listes
    S = 0
    for i in range(len(M)):
        for j in range(len(M[0])):
            S = S + M[i][j]
    return S
In [8]:
B = [[1,2,3],[6,4,5]]
somme(B)
Out[8]:
21

Exercice 2

Ecrire une fonction max_matrice qui prend en paramètre une matrice et retourne le plus grand de ses éléments.

In [9]:
def max_matrice(M):
    # M est une liste de listes
    m = M[0][0]
    for i in range(len(M)):
        for j in range(len(M[0])):
            if M[i][j] > m:
                m = M[i][j]
    return m
In [10]:
B = [[1,2,3],[6,4,5]]
max_matrice(B)
Out[10]:
6

Exercice 3

Ecrire une fonction max_lignes qui prend en paramètre une matrice et retourne l'indice de la ligne de somme maximale.

In [11]:
def max_lignes(M):
    # M est une liste de listes
    def somme_ligne(A,k):
        # retourne la somme de la ligne k de la matrice A
        S = 0
        for j in range(len(A[k])):
            S = S + A[k][j]
        return S
                       
    m = somme_ligne(M,0)
    indice_max = 0
                       
    for i in range(1,len(M)):
        aux = somme_ligne(M,i)
        if  aux > m:
            m = aux
            indice_max = i
    return indice_max
In [12]:
C = [[1,8,2,10],[0,0,0,1],[70,1,1,1],[1,2,3,4]]
max_lignes(C)
Out[12]:
2

Exercice 4

Ecrire une fonction max_colonnes qui prend en paramètre une matrice et retourne l'indice de la colonne où se trouve le plus grand élément de la matrice.

In [13]:
def max_colonnes(M):
    # M est une liste de listes
    def somme_colonne(A,k):
        # retourne la somme de la colonne k de la matrice A
        S = 0
        for i in range(len(A)):
            S = S + A[i][k]
        return S
                       
    m = somme_colonne(M,0)
    indice_max = 0
                       
    for j in range(1,len(M[0])):
        aux = somme_colonne(M,j)
        if  aux > m:
            m = aux
            indice_max = j
    return indice_max
In [14]:
D = [[1,8,2,10],[0,0,0,1],[70,1,1,1],[1,2,3,4]]
print(max_colonnes(D))
0
In [ ]: