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.
Relier les colonnes, filtrer des lignes et ouvrir un petit fichier CSV.
Calculer des indicateurs, puis produire un graphique.
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