Données#

Une liste peut décrire une série de mesures ou une caractéristique d’un groupe. Avec plusieurs listes de même longueur, les éléments de même indice concernent le même individu. On peut alors sélectionner, compter et calculer des indicateurs avec les outils déjà rencontrés.

Cette page commence par de petits tableaux entièrement visibles. Les indicateurs et les applications plus longues arrivent seulement ensuite.

Dès la seconde

La page est organisée en deux blocs. Le premier suffit pour apprendre à lire et filtrer un petit jeu de données ; le second ajoute les indicateurs et les graphiques.

Organiser et lire des données#

Des informations qui se correspondent#

Dans l’exemple suivant, les éléments d’indice 2 décrivent tous Inès : son prénom, sa classe et son moyen de transport.

Un même indice désigne une même ligne#

indice

prénom

classe

transport

0

Lina

2A

bus

1

Noé

2B

vélo

2

Inès

2A

marche

3

Adam

2A

bus

4

Zoé

2B

bus

5

Yanis

2A

vélo

Dans le tableau, on lit une personne sur une ligne. Dans le programme, chaque colonne est rangée dans une liste ; l’indice permet de retrouver la ligne commune. Cette organisation est utile pour s’entraîner avec les listes, même si de vrais fichiers de données utilisent souvent des outils spécialisés.

Exemple
Trois informations par élève
Prêt
Sortie

Les listes doivent avoir la même longueur et conserver le même ordre. Avant de traiter les données, il est utile de vérifier quelques lignes à la main.

Sélectionner certaines lignes#

La sélection suivante conserve les élèves de 2A qui ne viennent pas en bus. La variable i désigne successivement les indices 0, 1, 2, etc.

Exemple
Filtrer avec deux critères
Prêt
Sortie

Prévois les deux prénoms obtenus, puis remplace and par or et explique pourquoi la sélection devient plus grande.

Filtrer des données

À partir des listes suivantes, construire et afficher la liste des villes du Nord dont la population dépasse strictement 50 000 habitants.

villes = ["Lille", "Arras", "Douai", "Amiens", "Cambrai"]

departements = ["Nord", "Pas-de-Calais", "Nord", "Somme", "Nord"]

populations = [236000, 42000, 39000, 135000, 32000]

À toi
Filtrer plusieurs colonnes
À faire
Sortie

Présenter les données par lignes#

La même table peut être rangée autrement : chaque petite liste représente alors une ligne complète. Les crochets sont emboîtés parce qu’une grande liste contient plusieurs petites listes.

Exemple
Parcourir un tableau de données
Prêt
Sortie

Ainsi, donnees[0] désigne toute la ligne de Lille, tandis que donnees[0][2] désigne seulement sa population. Les deux organisations sont possibles : plusieurs listes représentent des colonnes, une liste de petites listes représente des lignes.

Lire un petit fichier CSV#

Un fichier CSV est un fichier texte dont chaque ligne contient plusieurs informations séparées par un caractère, ici un point-virgule. Le fichier eleves.csv est préchargé dans les cellules sous le nom eleves.csv.

Le module csv découpe chaque ligne. Le premier appel à next lit les noms des colonnes ; la boucle traite ensuite les données une ligne après l’autre.

Exemple
Ouvrir et lire un fichier CSV
Prêt
Sortie

L’encodage utf-8 permet de lire correctement les accents. float transforme le texte de la troisième colonne en nombre décimal. Sans cette conversion, Python lirait toutes les valeurs d’un fichier CSV comme du texte.

Lire le fichier

À partir du même fichier, afficher les prénoms des élèves de 2A dont la note est supérieure ou égale à 12. Le programme doit ouvrir eleves.csv et convertir la note en nombre.

À toi
Sélectionner des lignes du fichier
À faire
Sortie

Un indice qui dépasse#

Ce programme contient une erreur classique. Exécute-le, puis compare l’indice signalé avec le nombre d’éléments de la liste.

À corriger
Retrouver la bonne borne
Erreur attendue
Sortie

Comment chercher ?

La liste contient quatre éléments, donc ses indices vont de 0 à 3. Il faut chercher pourquoi la boucle demande un cinquième indice. Une borne utilisant len(villes) s’adapterait aussi à une liste de longueur différente.

Construire un tableau croisé#

On veut compter séparément les élèves de 2A et de 2B qui viennent en bus ou autrement. Quatre compteurs correspondent aux quatre cases du tableau.

Exemple
Compter quatre catégories
Prêt
Sortie

La grande liste tableau contient deux lignes. La première correspond à 2A, la seconde à 2B.

Lecture de la liste imbriquée#

bus

autre

2A

tableau[0][0]

tableau[0][1]

2B

tableau[1][0]

tableau[1][1]

La somme des quatre cases doit retrouver le nombre total d’élèves. Une fréquence conditionnelle utilise seulement l’effectif du groupe concerné comme dénominateur.

Construire le tableau

  1. Écrire une fonction tableau_croise(groupes, reponses). Les groupes valent "A" ou "B" et les réponses "oui" ou "non". La fonction renvoie [[A_oui, A_non], [B_oui, B_non]].

À toi
Tableau croisé
À faire
Sortie

  1. Écrire une fonction frequence_oui_A(groupes, reponses) qui renvoie la fréquence des réponses "oui" parmi les individus du groupe A.

À toi
Fréquence dans un groupe
À faire
Sortie

Mesurer et représenter#

Mesurer une série#

La moyenne décrit un niveau central. L’écart type mesure la dispersion autour de cette moyenne :

\[\sigma=\sqrt{\frac{(x_1-\bar x)^2+\cdots+(x_n-\bar x)^2}{n}}.\]
Exemple
Moyenne et écart type
Prêt
Sortie

Une fonction peut renvoyer plusieurs résultats. L’instruction return moyenne, variance, ecart_type produit un groupe de trois valeurs ; on peut ensuite les récupérer avec m, v, s = indicateurs(valeurs).

Calculer des indicateurs

  1. Écrire une fonction indicateurs(valeurs) qui renvoie, dans cet ordre, la moyenne, la variance et l’écart type d’une liste non vide.

À toi
Trois indicateurs
À faire
Sortie

  1. Les séries A = [8, 9, 10, 11, 12] et B = [2, 6, 10, 14, 18] ont la même moyenne. Calculer leurs écarts types et afficher une phrase indiquant la série la plus dispersée.

À toi
Comparer deux dispersions
À faire
Sortie

Tracer des données#

Un graphique aide à voir une évolution ou une répartition. Le module matplotlib reçoit une liste d’abscisses et une liste d’ordonnées de même longueur. plot relie les points ; show demande l’affichage du graphique.

Exemple
Premier graphique
Prêt
Sortie

Le style "o-" affiche les points et les relie. Les commandes portant sur le titre, les axes et la grille rendent la figure compréhensible sans avoir à relire le programme.

Tracer une évolution

Tracer les températures [6, 8, 11, 15, 19, 22] correspondant aux mois de janvier à juin, numérotés de 1 à 6. Ajouter un titre, le nom des axes, des points visibles et une grille.

À toi
Représenter une évolution
À faire
Sortie

Les deux activités suivantes réemploient les mêmes outils dans des contextes différents. Elles sont indépendantes : il est possible d’ouvrir seulement celle qui correspond au travail du moment.

Une loi de probabilité

Dès la première

Pour une variable aléatoire prenant les valeurs \(x_i\) avec les probabilités \(p_i\), les probabilités jouent le rôle de coefficients :

\[E(X)=\sum p_ix_i, \qquad V(X)=\sum p_i\bigl(x_i-E(X)\bigr)^2, \qquad \sigma(X)=\sqrt{V(X)}.\]

Les valeurs et leurs probabilités sont placées dans deux listes de même longueur. La somme des probabilités doit valoir 1.

Étudier une loi

Écrire une fonction indicateurs_loi(valeurs, probabilites) qui renvoie l’espérance, la variance et l’écart type de la variable aléatoire.

À toi
Indicateurs d’une variable aléatoire
À faire
Sortie

Une application avec du texte

Les données ne sont pas toujours des nombres. Un texte peut être parcouru caractère par caractère ; la méthode lower() transforme les majuscules en minuscules.

Exemple
Fréquence d’une lettre
Prêt
Sortie

Le dénominateur dépend de la question : tous les caractères, ou seulement les lettres ? Il faut annoncer le choix fait par le programme.

Analyser un texte

Écrire une fonction frequences_lettres(texte) qui renvoie une liste de 26 fréquences dans l’ordre de l’alphabet. Les espaces et la ponctuation sont ignorés. On pourra utiliser la chaîne "abcdefghijklmnopqrstuvwxyz".

À toi
Fréquences de l’alphabet
À faire
Sortie

Dans le parcours