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.
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.
prenoms[2]Inèsclasses[2]2Atransports[2]marche
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.
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]
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.
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.
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.
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.
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.
La grande liste tableau contient deux lignes. La première correspond à 2A, la seconde à 2B.
bus |
autre |
|
|---|---|---|
2A |
|
|
2B |
|
|
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
É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]].
Écrire une fonction
frequence_oui_A(groupes, reponses)qui renvoie la fréquence des réponses"oui"parmi les individus du groupe A.
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 :
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
Écrire une fonction
indicateurs(valeurs)qui renvoie, dans cet ordre, la moyenne, la variance et l’écart type d’une liste non vide.
Les séries
A = [8, 9, 10, 11, 12]etB = [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.
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.
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.
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 :
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.
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.
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".
Dans le parcours