Table des matières
TP statistiques
On propose ici de manipuler des données avec ordinateur.
Vous pouvez télécharger ce fichier : data.csv
Voici un extrait de ce fichier :
| 54.18 |
| 56.55 |
| 47.07 |
| 46.35 |
| 56.83 |
| 61.32 |
| 50.07 |
| 51.06 |
| 51.41 |
| 47.79 |
Avec le tableur
Avec un tableur comme Excel ou OpenOffice, récupérez les données et débrouiller vous pour obtenir :
- moyenne,
- écart-type,
- diagramme en boîte,
- histogramme avec des barres s'appuyant sur les classes $[10;20[$, $[20;30[$, … $[60;70[$.
Avec Python
Je vous propose un script on appelle script un petit fichier programme en Python qui fait tout ce dont nous avons besoin.
Préalable :
- copiez le fichier
data.csvdans le répertoire de votre choix, - ouvrez un environnement Python comme EduPython,
- créez un nouveau fichier programme,
- enregistrez-le tout de suite (encore vide) sous le nom
statistiques.pydans le même répertoire quedata.csv
Nous pouvons poursuivre.
Je découpe la suite en plusieurs morceaux pour insérer des explications, mais dans votre programme, tout sera à la suite.
Déclarer les bibliothèques
Python possède toutes les fonctions nécessaires. Souvent, ces fonctions ne sont pas présentes dans le langage de base. Elles se trouvent dans des bibliothèques de fonctions qu'il suffit d'utiliser.
Ici, nous voulons pouvoir calculer une moyenne, un écart-type et faire des graphiques.
from numpy import mean, std import matplotlib.pyplot as plt
Dans ce qui précède, matplotlib.pyplot est une grosse bibliothèque graphique. On ne veut pas avoir à réécrire tout le temps matplotlib.pyplot alors on donne un alias (as) que l'on nomme plt.
Récupérer le contenu du fichier
On souhaite ouvrir le fichier `data.csv` en mode lecture et en récupérer les lignes. Nous obtenons alors une sorte de liste ou chaque item est une ligne du fichier. Mais ces lignes sont considérées comme du texte. Nous devons donc indiquer à Python qu'il faut considérer chaque ligne comme un nombre à virgule : un float en langage informatique.
f = open('data.csv', 'r')
lines = f.readlines()
f.close()
values = [float(item) for item in lines]
À l'issue de ces lignes, values est une liste contenant toutes les valeurs de la série statistique.
Calculs statistiques
Nous avons importé les fonctions mean et std. Il suffit de les utiliser : mean(values) nous donnera la moyenne. On peut l'afficher avec print. Même chose pour l'écart-type.
print("moyenne :", mean(values))
print("écart-type :", std(values))
Graphiques
matplotlib est une bibliothèque TRÉS riche. Vous pouvez voir un aperçu de ce qui est possible.
Dans notre script, plt est la machine à faire des graphiques.
Parmi les graphiques disponibles, boxplot permet de faire des diagrammes en boîte. Je donne ci-dessous un exemple simple mais il y a beaucoup d'options.
hist permet de tracer un histogramme.
plt.boxplot(values, vert=False) plt.figure() plt.hist(values, bins=[20, 30, 40, 50, 60, 70], density = True, linewidth=0.5, edgecolor="black") plt.show()
Et voilà ! Il n'y a plus qu'à exécuter.
