Adloun

Écrire mediane colonne(table, colonne)

Exercice d'entraînement · niveau 1 (application) · NSI (première), chapitre 6 — Traiter des données en tables · Trier, agréger, résumer

Énoncé

Écrire mediane_colonne(table, colonne). Sur la table eleves, comparer médiane et moyenne, puis remplacer une note par et recommencer.

Corrigé


def mediane_colonne(table, colonne):
    """Médiane d'une colonne numérique.

    Précondition  : table non vide, valeurs numériques.
    Postcondition : min <= résultat <= max.
    """
    assert len(table) > 0, "table vide"
    v = sorted(ligne[colonne] for ligne in table)
    n = len(v)
    if n % 2 == 1:
        return v[n // 2]
    return (v[n // 2 - 1] + v[n // 2]) / 2

Validation : comparée à statistics.median sur tables tirées au hasard, tailles paires et impaires mêlées — cas passent.

La comparaison. Sur eleves : médiane , moyenne . En remplaçant la note de Yanis () par : moyenne , médiane inchangée à .

Ce que cela dit. La moyenne a perdu près de deux points ; la médiane n'a pas bougé d'un centième. Une valeur extrême — une note nulle, une saisie fautive à — déplace la moyenne et laisse la médiane indifférente. Sur des données réelles, donc sales, c'est un argument fort : comparer les deux, et s'inquiéter quand elles s'écartent. Un écart important est souvent la signature d'une valeur aberrante que le contrôle de domaine a laissée passer.

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.