Académique Documents
Professionnel Documents
Culture Documents
EUGENIA BAHIT
MATÉRIEL D'ÉTUDE
Information et inscription :
Cours : http://escuela.eugeniabahit.com | Certifications : http://python.laeci.org
Introduction à la science des données avec Python - Escuela de Informática Eugenia Bahit
RÉSUMÉ
MÉTHODES DE MANIPULATION DES VARIABLES.......................................................................................5
MANIPULATION DE CHAÎNES DE CARACTÈRES..........................................................................................5
LES MÉTHODES DE FORMATAGE.................................................................................................................5
MAJUSCULE À LA PREMIÈRE LETTRE.....................................................................................................5
CONVERTIR UNE CHAÎNE DE CARACTÈRES EN MINUSCULES.........................................................5
CONVERTIR UNE CHAÎNE DE CARACTÈRES EN MAJUSCULES.........................................................6
CONVERTIR LES MAJUSCULES EN MINUSCULES ET VICE VERSA..................................................6
CONVERTIR UNE CHAÎNE AU FORMAT TITRE......................................................................................6
CENTRER UN TEXTE.....................................................................................................................................6
ALIGNER LE TEXTE À GAUCHE.................................................................................................................6
ALIGNER LE TEXTE À DROITE...................................................................................................................7
REMPLIR UN TEXTE EN LE FAISANT PRÉCÉDER DE ZÉROS..............................................................7
LES MÉTHODES DE RECHERCHE..................................................................................................................7
COMPTER LE NOMBRE D'OCCURRENCES D'UNE SOUS-CHAÎNE......................................................7
RECHERCHE D'UNE SOUS-CHAÎNE DANS UNE CHAÎNE......................................................................7
LES MÉTHODES DE VALIDATION.................................................................................................................8
POUR SAVOIR SI UNE CHAÎNE COMMENCE PAR UNE SOUS-CHAÎNE DONNÉE............................8
POUR SAVOIR SI UNE CHAÎNE SE TERMINE PAR UNE SOUS-CHAÎNE DONNÉE...........................8
POUR SAVOIR SI UNE CHAÎNE EST ALPHANUMÉRIQUE.....................................................................8
POUR SAVOIR SI UNE CHAÎNE EST ALPHABÉTIQUE...........................................................................8
POUR SAVOIR SI UNE CHAÎNE EST NUMÉRIQUE..................................................................................9
SI UNE CHAÎNE NE CONTIENT QUE DES LETTRES MINUSCULES.....................................................9
SI UNE CHAÎNE NE CONTIENT QUE DES LETTRES MAJUSCULES.....................................................9
POUR SAVOIR SI UNE CHAÎNE DE CARACTÈRES NE CONTIENT QUE DES BLANCS..................10
SI UNE CHAÎNE DE CARACTÈRES EST AU FORMAT TITRE..............................................................10
LES MÉTHODES DE SUBSTITUTION...........................................................................................................10
FORMATAGE D'UNE CHAÎNE DE CARACTÈRES, REMPLACEMENT DYNAMIQUE DU TEXTE..10
REMPLACER UN TEXTE DANS UNE CHAÎNE DE CARACTÈRES......................................................11
SUPPRIMER LES CARACTÈRES À GAUCHE ET À DROITE D'UNE CHAÎNE DE CARACTÈRES...11
SUPPRIMER LES CARACTÈRES À GAUCHE D'UNE CHAÎNE DE CARACTÈRES............................11
SUPPRIMER LES CARACTÈRES À DROITE D'UNE CHAÎNE DE CARACTÈRES..............................11
LES MÉTHODES D'ASSEMBLAGE ET DE FENDAGE................................................................................11
RELIER ITÉRATIVEMENT UNE CHAÎNE.................................................................................................11
-2-
-3-
-4-
VARIANCE ET ÉCART-TYPE.........................................................................................................................60
PRODUIT SCALAIRE DE DEUX VECTEURS...............................................................................................61
LES CALCULS DE FRÉQUENCES RELATIVES, ABSOLUES ET CUMULÉES........................................61
ANNEXE II : CRÉATION D'UN MENU D'OPTIONS.........................................................................................63
d'actions appelées méthodes. Les méthodes sont des fonctions, mais elles sont dérivées d'une variable. Par
variable.function()
Dans certains cas, ces méthodes (fonctions d'un objet) acceptent des paramètres comme n'importe quelle autre
fonction.
variable.function(parameter)
ci-dessous.
-5-
Bonjour le monde
CENTRER UN TEXTE
Méthode : centre(length[, "fill character"])
Retourne : une copie de la chaîne centrée
> >> string = "welcome to my application".capitalize()
> >> string.center(50, "=")
===========Bienvenue dans mon application============
-6-
-7-
-8-
> >> chaîne = "pepegrillo" >> chaîne = "pepegrillo" >> chaîne = "pepegrillo" >> chaîne = "pepegrillo" >> chaîne =
"pepegrillo
> >> string.isalpha()
Vrai
> >> string = "pepegrillo75".
> >> string.isalpha()
Faux
-9-
> >> chaîne de caractères = "Pepegrillo" >> chaîne de caractères = "Pepegrillo" >> chaîne de caractères = "Pepegrillo
> >> string.isupper()
Faux
> >> string = "PEPEGRILLO".
> >> string.isupper()
Vrai
> >> string = "Montant brut : ${0} + TVA : ${1} = Montant net : {2}"
> >> string.format(100, 21, 121)
Montant brut : 100 $ + TVA : 21 $ = Montant net : 121
> >> string = "Montant brut : ${gross} + TVA : ${vat} = Montant net : {net}"
> >> string.format(gross=100, vat=21, net=121)
Montant brut : 100 $ + TVA : 21 $ = Montant net : 121
- 10 -
- 11 -
- 12 -
>>> noms_mâles
['Ricky', 'Alvaro', 'David', 'Jacinto', 'Jose', 'Ricky', 'Jose', 'Jose', 'Jose'].
MÉTHODES DE COMMANDE
- 15 -
>>> noms_masculins.index("Miguel", 2, 5) 4
CONVERSION DE TYPE
Dans l'ensemble des fonctions intégrées de Python, il est possible de trouver deux fonctions qui permettent de
convertir des listes en tuples, et vice versa. Ces fonctions sont list et tuple, pour convertir respectivement les
L'une des utilisations les plus fréquentes est la conversion de tuples en listes, qui doivent être modifiées. C'est
souvent le cas des résultats obtenus à partir d'une requête dans une base de données.
>>> list(tuple)
[1, 2, 3, 4]
>>> tuple(list)
(1, 2, 3, 4)
- 16 -
CONCATÉNATION DE COLLECTIONS
Vous pouvez concaténer (ou joindre) deux ou plusieurs listes ou deux ou plusieurs tuples, en utilisant le signe +.
Il n'est pas possible de joindre une liste à un tuple. Les collections à joindre doivent être du même type.
- 17 -
- 18 -
- 19 -
FONCTIONS 54
BIBLIOGRAPHIE COMPLÉMENTAIRE 54
ANNEXE I : CALCULS COMPLEXES 60
STATISTIQUES SUR LA POPULATION ET L'ÉCHANTILLON : CALCUL DES 60
VARIANCE ET ÉCART-TYPE 60
PRODUIT SCALAIRE DE DEUX VECTEURS 61
LES CALCULS DE FRÉQUENCES RELATIVES, ABSOLUES ET CUMULÉES 61
ANNEXE II : CRÉATION D'UN MENU D'OPTIONS 63
>
> >> tuple4 = tuple1 + tuple2 + tuple3
> >> tuple4
(1, 2, 3, 4, 5, 4, 6, 8, 10, 3, 5, 7, 9)
chaîne de texte :
- 20 -
VIDER UN DICTIONNAIRE
Méthode : clear()
>>> dictionnaire = {"couleur" : "violet", "taille" : "XS", "prix" : 174.25}
> >> dictionnaire
{couleur : 'violet', 'prix' : 174.25, 'taille' : 'XS' }
COPIER UN DICTIONNAIRE
Méthode : copy()
> >> dictionnaire = {"couleur" : "violet",
> >> t-shirt = dictionnaire.copy()
> >> dictionnaire
{'colour' : 'violet', 'price' : 174.25,
>>> remera.clear()
>>> T-shirt {} >>> T-shirt {} 174.25, taille : 'XS'}
Si la clé n'existe pas, elle est créée avec la valeur par défaut. Renvoie toujours la valeur de la clé passée en
paramètre.
- 23 -
>>> t-shirt2
{'colour' : 'pink', 'print' : None, 'brand' : 'Zara', 'size' : 'U'}
MÉTHODES DE RETOUR
>>> remera.get("stock")
>>> t-shirt.get("stock", "no stock")
en rupture de stock
- 24 -
- 25 -
et de répertoires.
L'une d'entre elles est le module os, qui permet de travailler avec l'ensemble du système de fichiers
Le deuxième niveau est celui qui permet de travailler avec des fichiers en manipulant leur lecture et leur écriture
ouvert ? Les réponses peuvent être multiples : lire, écrire, ou lire et écrire.
Chaque fois qu'un fichier est "ouvert", un pointeur est créé dans la mémoire.
Ce pointeur positionne un curseur (ou point d'accès) à un endroit précis de la mémoire (plus simplement, il
Ce curseur se déplace dans le fichier au fur et à mesure que celui-ci est lu ou écrit.
Lorsqu'un fichier est ouvert en mode lecture, le curseur est positionné à l'octet 0 du fichier (c'est-à-dire au début
du fichier). Une fois le fichier lu, le curseur se déplace jusqu'au dernier octet du fichier (équivalent au nombre
total d'octets du fichier). Il en va de même lorsqu'il est ouvert en mode écriture. Le curseur se déplace au fur et à
mesure de la saisie.
Lorsque vous souhaitez écrire à la fin d'un fichier non nul, le mode append est utilisé. De cette manière, le fichier
est ouvert avec le curseur à la fin du fichier.
Le symbole + en tant que suffixe de mode ajoute le mode opposé au mode d'ouverture une fois que l'action
d'ouverture est exécutée. Par exemple, le mode r (lecture) avec le suffixe + (r+), ouvre le fichier pour la lecture
L'écriture et la lecture.
w+ Remplacer le fichier s'il existe. Au début du fichier
Créer le fichier s'il n'existe pas.
Écriture et lecture en mode binaire.
wb+ Remplacer le fichier s'il existe. Créer le Au début du fichier
fichier s'il n'existe pas.
Si le fichier existe, à la fin du
Ajouté (ajouter du contenu). fichier.
a Créer le fichier s'il n'existe pas. Si le fichier n'existe pas, au
début.
Si le fichier existe, à la fin du
Ajouté en mode binaire (ajouter du contenu). fichier.
ab Créer le fichier s'il n'existe pas. Si le fichier n'existe pas, au
début.
- 28 -
celui-ci.
Créer le fichier s'il n'existe pas. Si le fichier n'existe pas, au
début.
Si le fichier existe, à la fin du
Ajouté (ajout de contenu) et lu en mode fichier.
ab+ binaire. Si le fichier n'existe pas, au
Créer le fichier s'il n'existe pas. début.
Méthode Description
Lit l'intégralité du contenu d'un fichier.
read([bytes]) Si la longueur de l'octet est indiquée, il ne lira que le
contenu jusqu'à la longueur spécifiée.
readlines() Lit toutes les lignes d'un fichier
ACCÈS AUX FICHIERS PAR LA STRUCTURE WITH Avec la structure with et la fonction
open(), vous pouvez ouvrir un fichier dans n'importe quel mode et travailler avec lui, sans avoir à le fermer ou à
détruire le pointeur, puisque la structure with s'en charge.
Lire un fichier :
contenu = """
Ce sera le contenu du nouveau fichier.
Le fichier comportera plusieurs lignes.
- 29 -
"""
dans la norme RFC 4180. Il s'agit de fichiers de texte brut, destinés au stockage de données en masse. C'est l'un
des formats les plus simples pour l'analyse des données. En fait, de nombreux formats de fichiers non libres (ou
libres mais plus complexes) sont souvent convertis au format CSV pour appliquer une science des données
Un fichier CSV se compose d'un en-tête qui définit les noms des colonnes, et les lignes suivantes contiennent les
données correspondant à chaque colonne, séparées par une virgule. Cependant, de nombreux autres symboles
peuvent être utilisés comme séparateurs de cellules. Parmi eux, la tabulation et le point-virgule sont aussi
ID;DATA;VV;DV;T;HR;PPT;RS;P
0;2016-03-01 00:00:00;;;9.9;73;;;
1;2016-03-01 00:30:00;;;9.0;67;;;
2;2016-03-01 01:00:00;;;8.3;64;;;
3;2016-03-01 01:30:00;;;8.0;61;;;
4;2016-03-01 02:00:00;;;7.4;62;;;
5;2016-03-01 02:30:00;;;8.3;47;;;
6;2016-03-01 03:00:00;;;7.7;50;;;
7;2016-03-01 03:30:00;;;9.0;39;;;
Scores obtenus par les joueurs dans un tournoi (séparés par ,) nom,montant,année
- 30 -
Maria,858,1930
Jose,665,1930
Rosa, 591, 1930
Juan Carlos, 522, 1930
Antonio, 509, 1930
Maria Esther,495,1930
Maria Luisa,470,1930
Joan,453,1930
John, 436, 1930
Entreprises enregistrées auprès de l'Inspection générale de la justice d'Argentine (séparées par , et données
entre guillemets)
Il est également possible de trouver des données stockées dans des fichiers texte (TXT) dont le format est très
proche de celui d'un fichier CSV. Il est parfois possible de développer un script de formatage pour corriger ces
- 31 -
lecture et l'écriture.
Ce module est utilisé en combinaison avec la structure with et la fonction open pour lire ou générer le fichier, et
0;2016-03-01 00:00:00;;;9.9;73;;;
1;2016-03-01 00:30:00;;;9.0;67;;;
2;2016-03-01 01:00:00;;;8.3;64;;;
3;2016-03-01 01:30:00;;;8.0;61;;;
4;2016-03-01 02:00:00;;;7.4;62;;;
5;2016-03-01 02:30:00;;;8.3;47;;;
6;2016-03-01 03:00:00;;;7.7;50;;;
7;2016-03-01 03:30:00;;;9.0;39;;;
8;2016-03-01 04:00:00;;;8.7;39;;;
with open("file.csv", "r") as file : document = reader(file, delimiter=';', for row in document :
' '.join(row) quotechar='"")
Sortie :
- 32 -
ID;DATA;VV;DV;T;HR;PPT;RS;P
0;2016-03-01 00:00:00;;;9.9;73;;;
1;2016-03-01 00:30:00;;;9.0;67;;;
2;2016-03-01 01:00:00;;;8.3;64;;;
3;2016-03-01 01:30:00;;;8.0;61;;;
4;2016-03-01 02:00:00;;;7.4;62;;;
5;2016-03-01 02:30:00;;;8.3;47;;;
6;2016-03-01 03:00:00;;;7.7;50;;;
7;2016-03-01 03:30:00;;;9.0;39;;;
8;2016-03-01 04:00:00;;;8.7;39;;;
Sortie :
- 33 -
- 34 -
- 35 -
ESPACE D'ÉCHANTILLON 40
ÉVÉNEMENTS SIMPLES ET COMPOSÉS 40
RÉPARTITION DES PROBABILITÉS 41
DES ÉVÉNEMENTS SIMPLES QUI S'EXCLUENT MUTUELLEMENT 41
DES ÉVÉNEMENTS COMPOSÉS D'ÉVÉNEMENTS UNIQUES S'EXCLUANT
MUTUELLEMENT 42
FONCTIONS 43
PROBABILITÉ CONDITIONNELLE EN PYTHON 43
FONCTIONS 44
ÉVÉNEMENTS DÉPENDANTS 44
THÉORIE DES ENSEMBLES EN PYTHON 46
ÉVÉNEMENTS INDÉPENDANTS 46
THÉORÈME DE BAYES EN PYTHON 47
THÉORÈME DE BAYES ET PROBABILITÉ DES CAUSES 47
DONNÉES : ÉTUDE DE CAS 47
ANALYSE 48
PROCEDURE 49
FONCTIONS 54
BIBLIOGRAPHIE COMPLÉMENTAIRE 54
ANNEXE I : CALCULS COMPLEXES 60
STATISTIQUES SUR LA POPULATION ET L'ÉCHANTILLON : CALCUL DES 60
VARIANCE ET ÉCART-TYPE 60
PRODUIT SCALAIRE DE DEUX VECTEURS 61
LES CALCULS DE FRÉQUENCES RELATIVES, ABSOLUES ET CUMULÉES 61
ANNEXE II : CRÉATION D'UN MENU D'OPTIONS 63
Une autre façon de lire les fichiers CSV avec des en-têtes est d'utiliser l'objet DictReader au lieu du
lecteur, et d'accéder ainsi uniquement à la valeur des colonnes souhaitées par leur nom :
with open("file.csv", "r") as file : document = DictReader(file, delimiter=';', for row in document :
rangée['DONNÉES'] quotechar='"")
- 36 -
Sortie :
'2016-03-01 00:00:00'
'2016-03-01 00:30:00'
'2016-03-01 01:00:00'
'2016-03-01 01:30:00'
'2016-03-01 02:00:00'
'2016-03-01 02:30:00'
'2016-03-01 03:00:00'
'2016-03-01 03:30:00'
'2016-03-01 04:00:00'
Dans l'exemple ci-dessus, un tableau pourrait être une liste de listes avec un nombre égal
Cette opération génère un fichier appelé data.csv dont le contenu est le suivant :
- 37 -
Dans ce cas, le tableau à écrire devra être une liste de dictionnaires dont les clés correspondent aux
en-têtes indiqués.
matrice = [
dict(player='John', points=373, année=1970), dict(player='Anna', points=124, année=1983),
dict(player='Peter', points=901, année=1650), dict(player='Rose', points=300, année=2000),
dict(player='Jane', points=75, année=1975), ] from csv import DictWriter
Des fonctions statistiques simples telles que les suivantes peuvent être exécutées sur des listes et des
- 38 -
E=(1,2,3,4,5,6)
espace_échantillon = [1, 2, 3, 4, 5, 6].
Chaque élément d'un espace d'échantillonnage est appelé point d'échantillonnage . Le nombre de
points d'échantillonnage est noté n de telle sorte que pour l'espace d'échantillonnageE=11,2,3,4,5,6/
, n=6 .
n = len(monthly_space)
• la probabilité que le nombre 5 soit lancé, est un événement simple A = {5} et est exclusif: si
5 est lancé, aucun autre nombre ne peut être lancé en même temps.
• simple ou composé
• mutuellement exclusifs ou indépendants
par Ak et la probabilité de ces points, désignée par P(Ak) , est déterminée par :
P(A,) = -
n
probabilité = 1,0 / n
En Python, au moins un élément de l'équation doit être un nombre réel si ce qui est demandé
comme résultat est un nombre réel.
- 41 -
la probabilité de l'événement composite sera donnée par la somme des probabilités de chaque
P(A) = P(A1)-P(A2)-.-P(Ak)
Par exemple, pour estimer la probabilité qu'un seul lancer de dé produise un nombre pair, nous
d'échantillonnageE=11,2,3,4,5,6}.
de telle sorte que :
3
Dans le premier résultat 6 ( dans la deuxième étape, avant de trouver le plus grand commun
1
et réduire la fraction à 2 ) , le dénominateur est équivalent au nombre d'événements simples dans
l'événement composite "nombres pairs" et est noté h. Le dénominateur, 6 , est n, le total de tous les
événements dans l'espace d'échantillonnage. Ainsi, la probabilité d'un événement composé A par
des événements mutuellement exclusifs est donnée par le quotient de hyn tel que :
p(a) = - n
- 42 -
Un événement composite peut être désigné par l'union de ses événements simples (symbole u , lu
P(2U4U 6) = P(2)+P(4)+P(6)
P(2U4U6) = 1++1+1+1 =8
P(2 U 4 U 6) = | |
FONCTIONS
# Probabilité d'événements simples mutuellement exclusifs pssme = lambda e : 1.0 / len(e) # Probabilité
d'événements composés mutuellement exclusifs def pscme(e, sc):
n = len(e)
return len(sc) / float(n)
d. Probabilité d'intersection :
P(ARB) = P(A)P(B)
P(A n B) = 1 I
P(A n B) = I
# probabilité de A
a = [i for i in e if i % 2 is not 0] pa = len(a) / float(n)
- 43 -
# probabilité de B
b = [i pour i dans e si i % 2 est 0] b = [i pour i dans e si i % 2 est 0] b = [i pour i dans e si i % 2 est 0] b = [i
pour i dans e si i % 2 est 0
pb = len(b) / float(n)
FONCTIONS
# Probabilité conditionnelle : événements dépendants def pscd(e, a, b):
i = list(set(a).intersection(b))
pi = pscme(e, i)
pa = pscme(e, a)
retour pi / pa
ÉVÉNEMENTS DÉPENDANTS
Se réfère à la probabilité que deux événements se produisent simultanément lorsque le second
La probabilité que B se produise si A se produit est notée P(BA) et se lit comme "la probabilité de
P(BI^ _ _
1
■ P(A)
Où PA n B)
est la probabilité de l'intersection des événements A etB
événement composé d'événements simples. Dans l'exemple suivant, elle serait égale à 11,3} (car 1
- 44 -
An ={1,3}
112 1
P(AnB)=P(1)+P(3)=+=é=, b0O3
poand_1-2_1
n6 3
p_I_2_1
Enfin, on obtient que :
P(B|A) = P427
P(B|.A) = 1/2
P(B-A) =5=0,6
- 45 -
# probabilité d'intersection
probability_intersec = float(hintersec) / n
# probabilité de "a
probability_a = float(ha) / n
# probabilité conditionnelle
probabilité_b_donnée_a = probabilité_intersec / probabilité_a
retourner 'i' pour chaque 'i' de la liste 'a' s'il se trouve dans la liste 'b'.
Cependant, comme chaque événement composite est un ensemble et que Python fournit un type de
données appelé ensemble, il est possible d'obtenir l'intersection en manipulant les événements
composites comme des ensembles Python. Avec set, vous pouvez convertir n'importe quel itérable
en un ensemble et effectuer des opérations d'ensemble telles que l'union et l'intersection lorsque cela
Ici, l'ensemble obtenu est converti en liste afin d'être cohérent avec le reste du code et de s'assurer
que l'élément résultant supporte les opérations et le traitement habituels d'une liste. En cas de doute
ÉVÉNEMENTS INDÉPENDANTS
Contrairement au cas précédent, la probabilité d'occurrence de B n'est pas affectée par l'occurrence
- 46 -
et obtenir un nombre pair (événement B) n'est pas affecté par le fait qu'un nombre impair a été
obtenu lors d'un lancer précédent (événement A). La probabilité de B est indépendante de A et est
donnée par le produit des probabilités des deux événements :
P(AnB) = P(A)P(B)
Après avoir calculé la probabilité des deux événements indépendants, on les multiplie pour obtenir :
E = {1,2,3,4,5,0}
b. Probabilité de A :
.4= {1,3,5}
P(A) = h = 2 = 1
événement B quelconque, le théorème de Bayes nous permet de connaître la probabilité que chaque
événement Ak de E soit la cause de B. C'est pourquoi elle est également connue sous le nom de
- 47 -
En outre, 9 000 cas de grippe ont été signalés, répartis comme suit :
L'objectif est d'obtenir la probabilité que la cause de la contraction de la grippe soit l'appartenance à
de filles).
ANALYSE
Il s ' ensuit que :
• La valeur de h pour les événements Ak est chacune des valeurs données dans le tableau de
distribution de la population.
- 48 -
• La probabilité d'être une fille, un garçon, une femme ou un homme dans la ville, par P(Ak) .
Il s'agit d'une probabilité a priori.
• La probabilité d'être une fille, un garçon, une femme ou un homme et d'avoir la grippe, qui
est obtenue avec P(Ak B ) et est considérée comme une probabilité conditionnelle.
• La probabilité que tout habitant, quel que soit le secteur auquel il appartient, soit atteint de la
grippe est obtenue avec
n
P(B)=>P(A)P(BA,)
k=1 et est considérée comme une probabilité totale.
• La probabilité qu'une personne atteinte de la grippe soit une fille, un garçon, une femme ou
un homme est obtenue à l'aide du théorème de Bayes. Cette probabilité est considérée
comme une probabilité a posteriori, ce qui permet de répondre à des questions telles que :
quelle estla probabilité qu'un nouveau cas de grippe survienne chez un enfant ?
Une façon efficace et ordonnée d'obtenir une probabilité a posteriori avec le théorème de Bayes est
AVIS :
dans ce qui suit, map(float, <list>) sera utilisé dans le code source pour convertir les éléments
d'une liste en nombres réels, tant que cela ne surcharge pas le code.
PROCEDURE
1. Calcul des probabilités a priori
- 49 -
Formule :
Données requises :
Résultats :
m) = = 0.22
50000 probabilité de êtrefille
9000
P(A2) = 50000
= 0.18
probabilité de êtreenfant
16000
= 0.32
50000
probabilité de êtrefemme
14000 = 0.28
50000 probabilité de êtrehomme
Code Python :
2. Probabilité conditionnelle
- 50 -
P(AknB)
P(BAk)= P(A,)
Formule :
Données requises :
h=B,
P(Ak n B) =
h = intersections (données du tableau de distribution des cas de grippe)
Résultats :
. .....
P(BA1)= LAINE1 probabilité d'avoir contracté la grippe pendant
0 18 0.22 ' l'enfance
IWO
P(BI A) = 50000 = 0.16
0.18
probabilité de contracter la grippe pendant l'enfance
3000
P(BI A3) = woou __0 19
0.32 '
probabilité de contracter la grippe en tant que femme
2500
P(BI A) = LAINE __0 18
0.28 ' probabilité de contracter la grippe en tant qu'homme
Code Python :
affected = map(float, [2000, 1500, 3000, 2500]) pi = [k / n for k in affected]) pi = [k / n for k in affected].
pba = [pi[i] / pa[i] for i in range(len(pi))]]
3. Probabilité totale
Rendement : probabilité que n'importe quel habitant, quel que soit son secteur démographique, soit
atteint de la grippe.
- 51 -
n
P(B) = >P(A,) P(BA,)
Formule : k=1
Données requises :
probabilité a priori
probabilité conditionnelle
Résultats :
P(B) = 0,18
Code Python :
Remarques:
(a) Notez que dans le résultat ci-dessus, il y aura une différence de 0,01 par rapport à la solution
manuelle. Ceci est dû aux arrondis dans la solution manuelle. Cette différence peut être éliminée en
utilisant trois décimales dans les valeurs de probabilité conditionnelle (au lieu de deux) dans la
solution manuelle.
- 52 -
(b) la probabilité de NE PAS avoir la grippe sera donnée par 1 - P(B'l tel que
1 -0,18 = 0,82 mais il ne sera pas nécessaire de l'utiliser pour cet exemple avec le
Théorème de Bayes.
4. Probabilité ex post
grippe.
Certitude : B (grippe)
_ . 2P(A,)P(BA+)
Formule : k=1
Données requises :
PAk) P(BAk,
= le produit obtenu dans chacun des termes de la vraisemblance totale
2P(AL)P(B|A)
k=1 = la probabilité totale
Résultats :
= 0.22
probabilité d'être une fille atteinte de la grippe
0.03
P(A2B)= 0.18
= 0.16
probabilité d'être un enfant atteint de la grippe
- 53 -
0.06 —
P(A3B)= = 0.33
0,18 probabilité d'être une femme atteinte de la grippe
0.05 -
P(A4B)= = 0.27
0,18 probabilité d'être un homme ayant la grippe
Code Python :
FONCTIONS
# Théorème de Bayes
def bayes(e, b) :
n = float(sum(e))
pa = [h / n pour h dans e].
pi = [k / n pour k dans b] pi = [k / n pour k dans b] pi = [k / n pour k dans b
pba = [pi[i] / pa[i] for i in range(len(pi))]]
prods = [pa[i] * pba[i] for i in range(len(pa))]]
ptb = somme(prods)
pab = [p / pb pour p dans prods].
retour pab
BIBLIOGRAPHIE COMPLÉMENTAIRE
[0] Probabilités et statistiques, Murray Spiegel. McGraw-Hill, Mexique 1988. ISBN : 968-451-102-
- 54 -
échantillons = [12, 23, 24, 24, 22, 10, 17]. # liste d'échantillons
n = len(samples)
Les
médias
Variance de la population
2 _ H(,2)2
" n
Variance de l'échantillon
Écart-type de l'échantillon
Écart-type de la population
N = sum(frequencies) # == len(samples)
# FRÉQUENCE RELATIVE
# Quotient entre la fréquence absolue et la fréquence relative N = [float(fi) / N for fi in frequencies] relative
sum = round(relative sum(sum(relative)) # == 1
# FRÉQUENCE CUMULÉE
# Somme de toutes les fréquences inférieures ou égales à la fréquence absolue frequencies.sort()
accumulé = [sum(frequencies[:i+1]) for i, fi in enumerate(frequencies)]]
- 61 -
le script agisse en fonction de l'option choisie par l'utilisateur. Voici une astuce pour résoudre ce
2) Deuxièmement, toutes les fonctions doivent être documentées, en définissant ce qu'elles font
exactement :
def read_file() :
"Lire le fichier CSV"""""
return "lire
def write_file() :
"Écrire un fichier CSV""""
return "écrire
def _sum_numbers(list) :
"Sum the numbers in a list"" return "private""
3) Une liste est ensuite définie avec le nom de toutes les fonctions qui seront accessibles à
▪ La liste de l'étape 3
La fonction locals()
L'attribut doc
echo(menu)
option = int(get("Votre option : "))
# echo and get : hacks learned in the introductory course
Enfin, pour accéder dynamiquement à la fonction choisie par l'utilisateur, l'astuce consiste à
utiliser l'option choisie par l'utilisateur comme index pour accéder au nom de la fonction dans la
- 64 -
Si vous avez atteint la fin du cours, vous pouvez obtenir une triple certification :
Si vous avez besoin de vous préparer à votre examen, vous pouvez vous inscrire
à la
Cours sur la science des données avec Python à l'école d'informatique
Eugenia Bahit
www.eugeniabahit.com www.eugeniabahit.com