
BCPST1  16-17 INFORMATIQUE TP N°11 (suite) 
3) Création d'un fichier csv avec Python 
Exemple : dans le script précédent, créer un vecteur Freq contenant les fréquences. 
Décommenter les instructions suivantes pour créer un nouveau fichier csv contenant les tailles et les 
fréquences. 
4) Lecture d'un fichier csv avec LibreOffice et Excel 
 Avec LibreOffice : lorsqu'on ouvre un fichier csv avec le tableur, une boîte de dialogue s'ouvre pour 
choisir les paramètres d'importation. Cocher la virgule comme séparateur de données numériques. 
Normalement les données doivent s'afficher correctement dans les cellules. 
 Avec Excel : lancer d'abord le tableur, ouvrir un nouveau classeur. Dans l'onglet Données du ruban, 
choisir Fichiers texte. Une boîte de dialogue s'ouvre; sélectionner le fichier csv choisi et cliquer sur 
importer; la fenêtre de l'assistant d'importation apparaît; choisir le type de fichier Délimité, l'origine du 
fichier (pour éviter les problèmes d'encodage) et la virgule comme séparateur, vérifier que le résultat 
est satisfaisant dans l'aperçu. 
2e partie : exemple de statistique univariée continue 
On a mesuré sur un échantillon de moules le rapport R= masse utile / masse brute, exprimé en %. 
(Source : http://math.agrocampus-ouest.fr/infoglueDeliverLive/enseignement/support2cours/donnees ) 
On a réparti les observations en classe d'amplitude 5% : 
Les données sont stockées dans le fichier moules_groupees.csv. 
1) Créer un script python et importer csv, numpy et matplotlib.pyplot 
2) Lire le fichier moules_groupees.csv et stocker ses lignes dans une liste L. Faire afficher L. 
3) Créer à partir de cette liste : 
– un vecteur numpy Bornesinf qui contient les bornes inférieures des classes (ai), 
– un vecteur numpy Eff qui contient les effectifs; 
Créer ensuite un vecteur X qui contient les milieux des classes (xi). 
Faire afficher ces trois vecteurs. 
4) Définir une fonction stats prenant comme arguments des vecteurs X et Eff contenant les milieux des 
classes et les effectifs d'une distribution statistique continue quelconque et retourne : 
le nombre p de classes, la taille n de l'échantillon, la moyenne observée de la statistique, sa variance 
observée ainsi que son écart-type observé. (Placer cette fonction avant le bloc principal) 
Créer des variables globales p, n, mX, SX2, SX et leur affecter les valeurs retournées par la fonction 
stats appliquée aux variables globales X et Eff de ce script. 
Faire afficher les valeurs de p, n, mX, SX. 
5) Créer un vecteur numpy Freq contenant les fréquences des classes. 
Ajouter une instruction de fermeture de toutes les figures existantes et créer une figure appelée 
'frequences'. 
Créer l'histogramme des fréquences de la distribution de R à l'aide de la fonction bar (les rectangles 
ayant pour largeur l'amplitude des classes, et pour hauteur les fréquences) 
Sur la même figure ajouter le polygone des fréquences, c'est-à-dire la ligne brisée joignant les points 
de coordonnées (xi, fi). 
6) Créer un vecteur numpy Freqcum contenant les fréquences cumulées des classes (f 'i), et un vecteur 
Bornessup contenant les bornes supérieures de classes (ai+1) 
7) Créer une nouvelle figure appelée "frequences cumulees". 
Représenter (sur le même graphique) l'histogramme des fréquences cumulées (fonction bar) et la 
courbe cumulative des fréquences, c'est-à-dire la ligne brisée qui joint les points de coordonnées  
(a1, 0), (a2, f '1),…, (ai+1, f 'i),…(ap+1,f 'p). 
Ajouter des droites "horizontales" permettant de lire sur le graphique la médiane et les quartiles de la 
distribution étudiée.