Un tableau à double entrée
Exercice · niveau 3 (difficile) · mathématiques (ECT 1re année), chapitre 13 — Informatique et algorithmique · Statistiques et tableaux
Énoncé
Les ventes trimestrielles de trois produits, en milliers d'euros, sont rangées dans M = np.array([[12, 15, 9, 14], [20, 18, 25, 22], [7, 6, 8, 5]]), une ligne par produit. Écrire les lignes qui donnent le total général, le total par produit et le total par trimestre, puis dire quel produit domine et dans quelle proportion.
Corrigé
Le script.
import numpy as np
M = np.array([[12, 15, 9, 14], [20, 18, 25, 22], [7, 6, 8, 5]])
print(np.shape(M)) # (3, 4)
print(np.sum(M)) # 161
print(np.sum(M, 1)) # [50 85 26]
print(np.sum(M, 0)) # [39 39 42 41]
Le piège de l'axe. np.sum(M, 1) rend un nombre par ligne, donc un total par produit : , et . np.sum(M, 0) rend un nombre par colonne, donc un total par trimestre : , , et .
On ne les distingue pas en récitant le numéro d'axe, mais en regardant la taille du résultat : trois nombres pour trois produits, quatre pour quatre trimestres. Et np.shape(M) rend (3, 4), les lignes d'abord.
Le contrôle gratuit. et . Les deux découpages doivent redonner le même total général ; s'ils diffèrent, c'est qu'un axe a été pris à l'envers.
Qui domine. Le deuxième produit, avec milliers d'euros. Sa part vaut
soit du total : il pèse à lui seul plus que les deux autres réunis, qui font et .
Le point à retenir. Dans un tableau à double entrée, ce n'est pas le numéro d'axe qu'on retient mais la forme du résultat. Et la somme des totaux par ligne doit égaler la somme des totaux par colonne : ce contrôle ne coûte rien et attrape l'erreur la plus fréquente du calcul matriciel.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.