0% ont trouvé ce document utile (0 vote)
10 vues101 pages

Programmation avancée en Python

Ce document présente un cours de programmation avancée en Python, dirigé par le professeur Hind Lamharhar, qui couvre des sujets tels que les types de données, les opérations arithmétiques, la programmation orientée objet et la manipulation de données. Il décrit également l'environnement de développement Python et les différents IDE disponibles. Le cours inclut des exercices pratiques pour renforcer les compétences des étudiants en programmation.

Transféré par

abidm2645
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues101 pages

Programmation avancée en Python

Ce document présente un cours de programmation avancée en Python, dirigé par le professeur Hind Lamharhar, qui couvre des sujets tels que les types de données, les opérations arithmétiques, la programmation orientée objet et la manipulation de données. Il décrit également l'environnement de développement Python et les différents IDE disponibles. Le cours inclut des exercices pratiques pour renforcer les compétences des étudiants en programmation.

Transféré par

abidm2645
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

4/25/24

Programmation avancée
Python
Professeur Hind LAMHARHAR
email: [Link]@[Link]
linkedIn: [Link]

Plan
Programmation avancée avec
python

Fondements et Techniques
Python de Manipulation de Projet
Données
v Types de données, opérations arithmétiques et logiques, vCréation et manipulation de tableaux indexation et tranchage, agrégation de données,
boucles, conditions, fonctions filtrage de données, lecture et écriture de fichiers, fonctions mathématiques.
v Programmation modulaires vExploration des données: Structures de données, manipulation de données , indexation
v POO: classes et objets, gestion d'erreurs et exceptions, et tranchage, regroupement de données, jointures de données, nettoyage de données,
vvisualisation de données, graphiques, Personnalisation des graphiques, Graphiques
bibliothèques et modules.
avancés,

Fondements Modules POO v nettoyage de données,


v Gestion des extraction de
& documents caractéristiques, analyse
(pdf, images, statistique, visualisation
Environnement tabulaire,….) de données, modèles de
machine learning.

Pr. Hind Lamharhar 2

1
4/25/24

Partie 1: Introduction à la
programmation avec Python

C'est quoi Python ?


• Python a été créé en 1989 par Guido van Rossum, aux Pays-Bas.
• La dernière version 3.11.2 a été publiée en juin 2022.
• La Python Software Foundation est l'association qui organise le développement de Python et anime la communauté
de développeurs et d'utilisateurs.
• Ce langage de programmation présente de nombreuses caractéristiques intéressantes :
• Il est multiplateforme. C'est-à-dire qu'il fonctionne sur de nombreux systèmes d'exploitation : Windows,
Mac OS X, Linux, Android, iOS, etc.
• C'est un langage de haut niveau.
• C'est un langage interprété. Un script Python n'a pas besoin d'être compilé pour être exécuté,
• Il est orienté objet.
• Il est relativement simple à prendre en main
• il est très utilisé en analyse de données.
• Toutes ces caractéristiques font que Python est désormais enseigné dans de nombreuses formations, depuis
l'enseignement secondaire jusqu'à l'enseignement supérieur.
Pr. Hind Lamharhar 4

2
4/25/24

Environnement Python
Il y a plusieurs IDE (Integrated Development Environment) disponibles pour Python, chacun ayant ses propres
avantages et inconvénients en fonction des besoins de l'utilisateur:
1. PyCharm : C'est l'IDE Python le plus populaire, développé par JetBrains. Il offre une interface utilisateur conviviale,
une analyse de code avancée, un débogage en temps réel, une gestion de versions, une refonte de code
automatique, etc. Il est disponible en versions payantes et gratuites.
2. Visual Studio Code : Il s'agit d'un éditeur de code gratuit et open source développé par Microsoft, qui prend en
charge de nombreux langages de programmation, y compris Python. Il offre des fonctionnalités telles que le
débogage en temps réel, l'intégration Git, l'analyse de code, etc.
3. IDLE : C'est l'IDE Python standard qui est livré avec l'installation de Python. Il est simple, facile à utiliser et offre des
fonctionnalités de base pour l'édition de code et le débogage.
4. Spyder : C'est un IDE Python axé sur la science des données, qui prend en charge les bibliothèques de données
populaires telles que NumPy, Pandas, Matplotlib, etc. Il offre des fonctionnalités telles que le débogage en temps
réel, l'analyse de code, l'exploration de données, etc.
5. Jupyter Notebook : Il s'agit d'un environnement de développement interactif basé sur le Web qui permet d'écrire et
d'exécuter du code Python de manière interactive. Il est populaire pour la science des données, la visualisation de
données, l'analyse statistique, etc.
Pr. Hind Lamharhar 5

Plan: Introduction à la programmation avec Python

1. Types de données
2. Opérations arithmétiques et logiques
3. Boucles et conditions

4. Fonctions
5. Gestion d'erreurs et exceptions;

6. Bibliothèques et modules.
7. POO en python: Classes , objets et héritage

Pr. Hind Lamharhar 6

3
4/25/24

Types de données
• Les types de données sont les éléments fondamentaux que l'on manipule en programmation.
Python a plusieurs types de données intégrés, tels que les nombres, les chaînes de caractères
et les listes.

• Entiers : les entiers sont des nombres entiers positifs ou négatifs tels que 1, 2, -3, -4, etc.
• Flottants : les flottants sont des nombres décimaux positifs ou négatifs tels que 1.2, 3.4, -2.5,
etc.
• Chaînes de caractères : les chaînes de caractères sont des séquences de caractères, telles que
"Hello World". Les chaînes peuvent être créées en utilisant des guillemets simples ou doubles.
• Booléens : les booléens ne peuvent avoir que deux valeurs : True ou False. Les booléens sont
souvent utilisés dans les instructions conditionnelles.

Pr. Hind Lamharhar 7

Types de données
• Listes : les listes sont des collections ordonnées d'éléments, tels que [1, 2, 3, 4] ou ["apple",
"banana", "orange"]. Les éléments d'une liste peuvent être de différents types de données.
• Tuples : les tuples sont des collections ordonnées d'éléments similaires aux listes, mais les
éléments d'un tuple ne peuvent pas être modifiés une fois qu'ils ont été créés. Les tuples sont
créés en utilisant des parenthèses, comme (1, 2, 3) ou ("a", "b", "c").
• Ensembles : les ensembles sont des collections d'éléments uniques et non ordonnés. Les
ensembles sont créés en utilisant des accolades, comme {1, 2, 3}.
• Dictionnaires : les dictionnaires sont des collections d'éléments clé-valeur, où chaque élément
est associé à une clé unique. Les dictionnaires sont créés en utilisant des accolades et des
paires clé-valeur, comme {"apple": 1, "banana": 2, "orange": 3}.

Pr. Hind Lamharhar 8

4
4/25/24

Types de données & Variables


Types de données
• Entiers : Voici des exemples de syntaxe pour les entiers :
• 42
• -1234
• 0
• Flottants : Voici des exemples de syntaxe pour les flottants :
• 3.14
• -2.5
• 0.0
• Chaînes de caractères : Voici des exemples de syntaxe pour les chaînes de caractères :
• "Hello World"
• 'Python est un langage de programmation'
• "42"
Pr. Hind Lamharhar 9

Types de données & Variables


Types de données
• Listes : Les éléments d'une liste sont séparés par des virgules et entourés de crochets. Voici des
exemples de syntaxe pour les listes :
• [1, 2, 3, 4]
• ["apple", "banana", "orange"]
• [1, "Hello", 3.14]

• Tuples : Les éléments d'un tuple sont séparés par des virgules et entourés de parenthèses.
Voici des exemples de syntaxe pour les tuples :
• (1, 2, 3, 4)
• ("apple", "banana", "orange")
• (1, "Hello", 3.14)

Pr. Hind Lamharhar 10

10

5
4/25/24

Types de données & Variables


Types de données
• Ensembles : Les éléments d'un ensemble sont séparés par des virgules et entourés d'accolades.
Voici des exemples de syntaxe pour les ensembles :
• {1, 2, 3}
• {"apple", "banana", "orange"}
• Dictionnaires : Les éléments d'un dictionnaire sont séparés par des virgules, chaque élément
étant une paire clé-valeur, séparée par deux points. Les éléments sont entourés d'accolades.
Voici des exemples de syntaxe pour les dictionnaires :
• {"apple": 1, "banana": 2, "orange": 3}
• {"nom": "Jean", "age": 30, "ville": "Paris"}
• Booléens : Voici des exemples de syntaxe pour les booléens :
• True
• False

Pr. Hind Lamharhar 11

11

Types de données & Variables


Variables
• En Python, les variables sont des espaces de stockage
nommés qui contiennent des valeurs. Les variables sont
utilisées pour stocker des données dans un programme et
peuvent être modifiées à tout moment.
• Pour créer une variable en Python, il suffit de lui donner
un nom et de lui attribuer une valeur en utilisant
l'opérateur d'affectation "=".
• En Python, les variables sont typées dynamiquement,
c'est-à-dire que leur type est déterminé à l'exécution du
programme en fonction de la valeur qu'elles contiennent.
Il est donc possible de réaffecter une variable à une valeur
de type différent, comme dans l'exemple suivant:

Pr. Hind Lamharhar 12

12

6
4/25/24

Types de données & Variables


Variables
• Il est possible de créer des variables en affectant des valeurs à plusieurs variables à la fois:

• Dans cet exemple, les variables x, y et z sont créées et initialisées respectivement avec les
valeurs 1, 2 et 3.
• Enfin, il est important de noter que les noms de variables en Python doivent suivre certaines
règles :
• Le nom de la variable doit commencer par une lettre ou un underscore.
• Le nom de la variable ne peut contenir que des lettres, des chiffres et des underscores.
• Le nom de la variable ne peut pas être un mot réservé de Python (par exemple, "if", "else",
"while", etc.).
• Les noms de variables sont sensibles à la casse (c'est-à-dire que "age" et "Age" sont deux
variables différentes).
Pr. Hind Lamharhar 13

13

Opérations arithmétiques et logiques


• Les opérations arithmétiques et logiques sont les moyens de manipuler les données en
programmation.
• Les opérations arithmétiques incluent l'addition, la soustraction, la multiplication et la
division,
• tandis que les opérations logiques incluent les opérateurs booléens tels que "et", "ou" et
"non".

Pr. Hind Lamharhar 14

14

7
4/25/24

Opérations arithmétiques et logiques


• Addition : l'opérateur d'addition est le symbole • Multiplication : l'opérateur de multiplication est
"+" : le symbole "*" :
• 2+2 • 2*3
• 3.14 * 2
• 3.14 + 1.5
• "Hello" * 3
• "Hello" + " " + "World" • [1, 2, 3] * 2
• [1, 2, 3] + [4, 5, 6] • Division : l'opérateur de division est le symbole
"/" :
• Soustraction : l'opérateur de soustraction est le • 6/3
symbole "-" : • 10 / 3
• 3.14 / 2.0
• 5-3
• Division entière : l'opérateur de division entière
• 2.0 - 1.5
est le symbole "//" :
• 6 // 3
• 10 // 3
Pr. Hind Lamharhar 15

15

Opérations arithmétiques et logiques


• Modulo : l'opérateur modulo est le symbole "%" :
• 7%3
• 10 % 3
• Exponentiation : l'opérateur d'exponentiation est le symbole "**" :
• 2 ** 3
• 3.14 ** 2
• Il est également possible d'utiliser des parenthèses pour grouper des opérations et définir
l'ordre d'évaluation.
• Par exemple : (2 + 3) * 4

Pr. Hind Lamharhar 16

16

8
4/25/24

Types de données & Variables


Exercices
• Types de données
1. Créer une variable de chaque type de
données (entier, flottant, chaîne de
caractères, liste, tuple, ensemble,
dictionnaire, booléen).
2. Utiliser des opérations sur les types de
données (arithmétiques, concaténation de
chaînes, etc.).
3. Convertir entre les types de données.

Pr. Hind Lamharhar 17

17

Structure de données: Liste


• Les listes sont l'une des structures de données les plus courantes en Python. Une liste est une
collection ordonnée d'éléments qui peuvent être de différents types de données tels que des
nombres, des chaînes de caractères, des booléens, des listes, etc.
• Création d'une liste
• Accès aux éléments d'une liste
• Modification des éléments d'une liste
• Ajout et suppression d'éléments dans une liste

Pr. Hind Lamharhar 18

18

9
4/25/24

Structure de données: Liste


Création
• Pour créer une liste en Python, vous pouvez
simplement placer des éléments dans des
crochets [], séparés par des virgules. Par
exemple, voici une liste qui contient des
éléments de différents types de données :
• Il est important de noter que les éléments
d'une liste peuvent être de différents types
de données. Dans cet exemple, la liste
contient un entier, un nombre à virgule
flottante, une chaîne de caractères, un
booléen et une liste imbriquée.
• Il est également possible de créer une liste
vide en utilisant simplement des crochets :

Pr. Hind Lamharhar 19

19

Structure de données: Liste


Accès et modification
• Accès aux éléments d'une liste
• Vous pouvez accéder aux éléments individuels d'une liste en utilisant leur indice, qui commence à
zéro pour le premier élément.
• Modification des éléments d'une liste
• Les éléments d'une liste peuvent être modifiés en utilisant leur index. Par exemple, pour modifier le
deuxième élément d'une liste, on peut utiliser la syntaxe suivante :

Pr. Hind Lamharhar 20

20

10
4/25/24

Structure de données: Liste


Ajout et modification
• Ajout d'éléments dans une liste
• On peut ajouter un élément à une liste en
utilisant la méthode append(), qui ajoute
l'élément à la fin de la liste :
• On peut également ajouter plusieurs
éléments à la fois en utilisant la méthode
extend()
• Suppression des éléments d’une liste: Il existe
plusieurs façons de supprimer des éléments
d'une liste en Python.
• Supprimer un élément par son index (del et
pop)
• Supprimer un élément par sa valeur
(remove)

Pr. Hind Lamharhar 21

21

Structure de données: Liste


Autres fonctions
• La fonction len() permet de connaître la
longueur d'une liste, c'est-à-dire le nombre
d'éléments qu'elle contient.
• La méthode insert() permet d'insérer un
élément à une position
• La fonction sorted() permet de trier une liste
par ordre croissant (ou décroissant) et de
renvoyer une nouvelle liste triée.

Pr. Hind Lamharhar 22

22

11
4/25/24

Structure de données: Dictionnaire


1. Introduction aux dictionnaires : 1. Modification des éléments d'un dictionnaire :
1. Description de la structure de données de 1. Modification d'une valeur à partir de sa clé.
dictionnaire.
2. Comparaison entre les listes et les dictionnaires. 2. Ajout d'une nouvelle paire clé-valeur.
2. Création d'un dictionnaire : 3. Remplacement de toutes les paires clé-valeur
1. Utilisation de la notation {} pour créer un avec la méthode update().
dictionnaire vide.
2. Ajout d'un élément à un dictionnaire :
2. Ajout d'éléments à un dictionnaire avec la
syntaxe cle:valeur. 1. Utilisation de la méthode update() pour
3. Utilisation de la méthode dict() pour créer un ajouter plusieurs éléments à un dictionnaire.
dictionnaire à partir d'une séquence de paires 2. Ajout d'un élément avec la syntaxe
clé-valeur. dictionnaire[cle] = valeur.
3. Accès aux éléments d'un dictionnaire :
3. Suppression d'un élément d'un dictionnaire :
1. Utilisation de la clé pour accéder à la valeur d'un
élément dans un dictionnaire. 1. Suppression d'un élément avec la méthode del.
2. Gestion des erreurs en utilisant la méthode get(). 2. Suppression d'un élément et récupération de
3. Récupération des clés et des valeurs d'un sa valeur avec la m
dictionnaire.
Pr. Hind Lamharhar 23

23

Structure de données: Dictionnaire


• Les dictionnaires sont une structure de données couramment utilisée en Python. Un
dictionnaire est similaire à une liste, mais au lieu d'utiliser des indices numériques pour
accéder à ses éléments, il utilise des clés.
• Un dictionnaire est défini à l'aide d'accolades {}. Chaque élément du dictionnaire est constitué
d'une paire clé-valeur séparée par deux points : et chaque paire clé-valeur est séparée par une
virgule ,. Voici un exemple de dictionnaire :

Pr. Hind Lamharhar 24

24

12
4/25/24

Structure de données: Dictionnaire


• Création d'un dictionnaire :
• Utilisation de la notation {} pour créer un
dictionnaire vide.
• Ajout d'éléments à un dictionnaire avec la
syntaxe cle:valeur.
• Utilisation de la méthode dict() pour créer un
dictionnaire à partir d'une séquence de paires
clé-valeur.
• Accès aux éléments d'un dictionnaire :
• Utilisation de la clé pour accéder à la valeur
d'un élément dans un dictionnaire.
• Gestion des erreurs en utilisant la méthode
get().
• Récupération des clés et des valeurs d'un
dictionnaire.
Pr. Hind Lamharhar 25

25

Structure de données: Dictionnaire


1. Modification des éléments d'un dictionnaire :
• Modification d'une valeur à partir de sa clé.
• Ajout d'une nouvelle paire clé-valeur.
• Remplacement de toutes les paires clé-valeur
avec la méthode update().
• Après l'exécution de la méthode update(), toutes
les paires clé-valeur de mon_dictionnaire ont été
remplacées par celles de nouveau_dictionnaire.

Il est important de noter que si une clé existe dans les deux dictionnaires, la valeur associée à cette clé
dans le dictionnaire de mise à jour (nouveau_dictionnaire dans notre exemple) remplacera la valeur
associée à la même clé dans le dictionnaire original (mon_dictionnaire dans notre exemple). Si une clé
existe uniquement dans le dictionnaire de mise à jour, une nouvelle paire clé-valeur sera ajoutée au
dictionnaire original avec cette clé et cette valeur.
Pr. Hind Lamharhar 26

26

13
4/25/24

Structure de données: Dictionnaire


Suppression d'un élément
• Suppression d'un élément avec la méthode del()
• Suppression d'un élément et récupération de sa valeur avec la methode pop()
• Dans cet exemple, nous avons supprimé l'élément avec la clé 'viande' du dictionnaire mon_dictionnaire
en utilisant la méthode pop(). Cette méthode renvoie la valeur de l'élément supprimé, que nous avons
stockée dans la variable valeur_supprimee. Nous avons ensuite affiché cette variable pour vérifier que la
valeur 'boeuf' a bien été récupérée. Nous avons également affiché le dictionnaire modifié pour vérifier que
l'élément avec la clé 'viande' a bien été supprimé.

Pr. Hind Lamharhar 27

27

Structure de données: Tuple


Autres fonctions
• un tuple est une structure de donnée similaire a une • Les éléments d'un tuple peuvent être accédés
liste, mais une fois créé, il ne peut pas être modifié . en utilisant des index : nom_tuple[index].
• Les tuples sont souvent utilisés pour regrouper • Les tuples peuvent également être décomposés
plusieurs éléments, tels que des coordonnées x et y ou en variables distinctes en utilisant une syntaxe
ou des informations sur une personne. spéciale.
• Les tuples sont également plus efficaces que les listes
en termes de temps d'exécution et de consommation
de mémoire, en particulier pour les petits ensembles
de données.
• Les tuples sont définis en utilisant des parenthèses ( )
et en séparant les éléments par des virgules.

Pr. Hind Lamharhar 28

28

14
4/25/24

TD1:
Types de données, opérations et structures de données
• Partie 1 : Types de données et variables
1. Déclarez deux variables, une pour stocker votre nom et une autre pour stocker votre âge.
2. Affichez le type de données de chaque variable.
3. Modifiez la variable d'âge pour ajouter 5 ans, puis affichez la nouvelle valeur de cette variable.
4. Déclarez une troisième variable pour stocker votre taille en mètres, puis affichez cette variable.
5. Modifiez la variable de taille pour ajouter 10 cm, puis affichez la nouvelle valeur de cette variable.
• Partie 2 : Opérations arithmétiques et logiques
1. Déclarez deux variables pour stocker des nombres entiers.
2. Calculez et affichez la somme, la différence, le produit et le quotient de ces deux nombres.
3. Utilisez une instruction conditionnelle pour afficher un message différent selon que la somme est supérieure, inférieure ou égale à 100.
4. Utilisez une instruction conditionnelle pour afficher un message différent selon que la différence est positive, négative ou nulle.
5. Déclarez deux variables booléennes pour stocker des valeurs Vrai et Faux.
6. Effectuez des opérations logiques sur ces deux variables (et, ou, non) et affichez les résultats.
• Partie 3 : Structures de données
1. Créez une liste contenant les noms de 5 amis.
2. Affichez le premier et le dernier élément de la liste.
3. Ajoutez un nouveau nom à la liste.
4. Modifiez le deuxième nom de la liste pour ajouter un surnom.
5. Créez un dictionnaire contenant les noms et âges de vos amis.
6. Ajoutez un nouvel ami au dictionnaire.
7. Affichez l'âge d'un ami spécifique en utilisant son nom comme clé.

Pr. Hind 8. Modifiez l'âge d'un ami spécifique dans le dictionnaire.


Lamharhar 29

29

Structure de contrôles: Conditions


• Condition "if" : utilisée pour exécuter une
action si une condition est vraie.
• Condition "else" : utilisée pour exécuter une
action si la condition de l'instruction "if" est
fausse.

• Condition "elif" : utilisée pour tester une


condition supplémentaire si la condition de
l'instruction "if" est fausse.

Pr. Hind Lamharhar 30

30

15
4/25/24

Structure de contrôles: Boucles


• Les boucles permettent de répéter des instructions un certain nombre de fois ou tant qu'une condition
est vraie.
• Boucle "for" : cette boucle est utilisée pour parcourir une séquence d'éléments (par exemple une
liste) et effectuer une action pour chaque élément.

• variable est une variable qui prendra successivement les valeurs de chaque élément de la
séquence.
• sequence est une séquence d'éléments tels qu'une chaîne de caractères, une liste ou un tuple.
• Les instructions à l'intérieur de la boucle for seront exécutées pour chaque élément de la
sequence.
• Boucle "while" : cette boucle est utilisée pour répéter une action tant qu'une condition est vraie.

Pr. Hind Lamharhar 31

31

Structure de contrôles: Exemples

Pr. Hind Lamharhar 32

32

16
4/25/24

Fonctions
En Python, une fonction est un bloc de code qui effectue une tâche spécifique réutilisable qui
peut être appelé à partir d'autres parties du programme.
• les étapes pour créer une fonction en Python :
1. Définition de la fonction : la définition d'une fonction commence par le mot-clé "def", suivi du nom
de la fonction et des parenthèses. Les parenthèses peuvent contenir des paramètres d'entrée pour
la fonction.
2. Bloc de code : le corps de la fonction doit être indenté et contient les instructions à exécuter
lorsque la fonction est appelée.
3. Retour de valeurs : la fonction peut retourner une valeur à l'aide du mot-clé "return".
• Si la fonction ne retourne pas de valeur, elle peut simplement être appelée sans affecter le
résultat à une variable.

Pr. Hind Lamharhar 33

33

Fonctions
• Exemple: Dans cet exemple, la fonction est appelée "calculer_somme" prend deux arguments,
"a" et "b".
• la fonction calcule la somme de "a" et "b" et stocke le résultat dans la variable "somme".
• Ensuite, elle retourne la valeur de la variable « somme » à l'aide du mot-clé "return".
• Pour appeler la fonction, les deux valeurs 2 et 3 passés comme arguments et le résultat
est stocké dans une variable appelée "resultat".
• Enfin, le résultat est affiché à l'aide de la fonction "print".

Pr. Hind Lamharhar 34

34

17
4/25/24

Fonctions: Exercices
• Ecrire trois fonctions en Python :
1. Fonction est_mineur(age) : prend un argument âge et retourne True si la personne est mineure (moins
de 18 ans), sinon retourne False.
2. Fonction quantite_stock(stock_actuel, entrees, sorties) : prend trois arguments : stock_actuel (quantité
actuelle en stock), entrees (quantité entrée dans le stock) et sorties (quantité sortie du stock). La
fonction retourne la quantité en stock après l'ajout des entrées et la soustraction des sorties.
3. Fonction moyenne_notes(notes) : prend une liste de notes (Python, POO, Architecture d'ordinateur et
Java) et les coefficients associés (respectivement 4, 3, 2 et 3), calcule et retourne la moyenne pondérée
des notes.
• Notez que les coefficients des notes sont respectivement 4, 3, 2 et 3. Vous pouvez supposer que les notes et les
coefficients sont entrés dans le même ordre dans la liste

Pr. Hind Lamharhar 35

35

Gestion d'erreurs et exceptions :


La gestion d'erreurs et d'exceptions permet de gérer les situations où le programme ne fonctionne pas
comme prévu. Python a des mécanismes intégrés pour détecter et gérer les erreurs, ce qui peut aider à
prévenir les erreurs imprévues.
• Les erreurs peuvent se produire pour diverses raisons, telles que des entrées utilisateur incorrectes, des
problèmes de connexion réseau, des fichiers manquants, etc.
• Python fournit des instructions "try" et "except" pour gérer les erreurs et les exceptions.
• le code sera exécuté si il est placé dans un bloc "try"
• Si une exception est levée, le code passe au bloc "except", qui gère l'exception et empêche le
programme de se terminer de manière inattendue.

Pr. Hind Lamharhar 36

36

18
4/25/24

Gestion d'erreurs et exceptions


Python propose plusieurs types d'exceptions, chacune étant associée à un type d'erreur
spécifique. Voici les principaux types d'exceptions en Python :
[Link] : c'est la classe de base pour toutes les exceptions en Python
[Link] : exception est levée lorsque la valeur d'un argument est incorrecte.
[Link] : exception est levée lorsqu'une opération est effectuée sur un type qui ne supporte pas
cette opération.
[Link] : exception est levée lorsqu'un index est hors de portée.
[Link] : exception est levée lorsqu'une clé n'est pas trouvée dans un dictionnaire.
[Link] : exception est levée lorsqu'un attribut n'est pas trouvé dans un objet.
[Link] : exception est levée lorsqu'un fichier n'est pas trouvé.
[Link] : exception est levée lorsqu'il y a une erreur d'entrée/sortie.

Pr. Hind Lamharhar 37

37

Gestion d'erreurs et exceptions : ValueError


• Exemple 1: Gestion d'une erreur de saisie utilisateur

• "try" est utilisé pour tenter de convertir une entrée utilisateur en un nombre entier à l'aide de la
fonction "int()".
• Si l'utilisateur entre un caractère qui ne peut pas être converti en un nombre entier, une exception
"ValueError" est levée.
• Le code passe alors au bloc "except" correspondant, qui affiche un message d'erreur à l'utilisateur.

Pr. Hind Lamharhar 38

38

19
4/25/24

Gestion d'erreurs et exceptions: FileNotFoundError


• Plusieurs blocs "except" pour gérer différents types d'exceptions.
• Exemple 2: Gestion d'une erreur de fichier inexistant :
• Dans cet exemple, nous essayons d'ouvrir un fichier qui n'existe pas en utilisant la fonction
"open()".
• Si le fichier n'existe pas, une exception "FileNotFoundError" est levée. Le bloc "except"
correspondant gère cette exception et affiche un message d'erreur
• Si une autre exception inattendue se produit, elle est gérée par le bloc "except" par défaut.

Pr. Hind Lamharhar 39

39

Gestion d'erreurs et exceptions: ZeroDivisionError


1. Exemple 3: Gestion d'une division par zéro :
• Diviser un nombre par zéro, ce qui provoque une exception "ZeroDivisionError".

2. Exemple 4: Gestion d'une valeur non valide pour une fonction personnalisée :

Pr. Hind Lamharhar 40

40

20
4/25/24

Gestion d'erreurs et exceptions: KeyError


• Exemple 5: Gestion d'une erreur de clé inexistante dans un dictionnaire
• Dans cet exemple, nous essayons d'accéder à une clé qui n'existe pas dans un dictionnaire
Si la clé n'existe pas, une exception "KeyError" est levée.

Pr. Hind Lamharhar 41

41

Gestion d'erreurs et exceptions: TypeError


• Exemple 6: Gestion d'une erreur de type inattendu
• Dans cet exemple, nous avons créé une fonction "diviser()" qui divise deux nombres en utilisant
l'opérateur de division "/".
• La fonction gère deux types d'exceptions :
• "TypeError" si l'un des arguments n'est pas un nombre,
• et "ZeroDivisionError" si le deuxième argument est zéro.

Le bloc "except" correspondant


gère chaque exception
séparément et affiche un
message d'erreur approprié. Si
une exception est levée, la
fonction renvoie "None" au lieu
d'un résultat numérique.

Pr. Hind Lamharhar 42

42

21
4/25/24

TD2
Gestion d'erreurs et exception
Donner les types des exceptions des énoncés suivants
1. Écrire une fonction convertir_en_int qui prend une chaîne de caractères en argument et renvoie un entier. Si la
chaîne ne peut pas être convertie en entier, la fonction doit renvoyer un message d'erreur.
2. Écrire une fonction verifier_nombre_positif qui prend un nombre en argument et vérifie s'il est positif. Si le
nombre est négatif, la fonction doit lever une exception.
3. Écrire une fonction qui prend en entrée une liste de nombres et qui renvoie la moyenne de ces nombres. Si la liste
est vide, la fonction doit lever une exception.
4. Écrire une fonction eval_expr qui prend une expression mathématique en argument et renvoie le résultat de son
évaluation ( utiliser eval(expression)). Si l'expression contient une erreur de syntaxe, la fonction doit lever une
exception.
5. Écrire une fonction extraire_nombre qui prend une chaîne de caractères en argument et renvoie le premier
nombre trouvé dans la chaîne. Si la chaîne ne contient pas de nombre, la fonction doit lever une exception.
6. Écrire une fonction jours_entre_dates qui prend deux dates en argument et renvoie le nombre de jours entre ces
deux dates. Si les dates sont mal formatées ou si la première date est postérieure à la deuxième date, la fonction
doit lever une exception.

Pr. Hind Lamharhar 43

43

Partie 1: Introduction à la
programmation avec Python

44

22
4/25/24

Bibliothèques et modules
• Les bibliothèques et les modules sont des collections de fonctions et de classes qui étendent
les fonctionnalités de base de Python et qui peuvent être utilisé pour fournir une fonctionnalité
supplémentaire à votre programme en utilisant l'instruction "import".
• Un module est un fichier individuel qui contient du code Python qui peut contenir des fonctions, des
classes et des variables
• tandis qu'une bibliothèque (library en anglais) est un ensemble de modules contenant des
fonctions et des classes qui peuvent être réutilisées dans d'autres programmes.
• Les bibliothèques Python sont souvent appelées "modules standard" car elles sont incluses dans
l'installation de base de Python.

Pr. Hind Lamharhar 45

45

Bibliothèques et modules: Création des modules


Exemples
[Link]éation d'un module pour calculer la moyenne d'une liste de nombres: Ce module définit
une fonction "moyenne" qui prend une liste de nombres en entrée et renvoie leur moyenne.
[Link]éation d'un module pour effectuer des opérations mathématiques de base: Ce module
définit plusieurs fonctions pour effectuer des opérations mathématiques de base telles que
l'addition, la soustraction, la multiplication et la division. La fonction "division" vérifie
également que le deuxième argument n'est pas égal à zéro pour éviter une division par zéro.
[Link]éation d'un module pour manipuler des chaînes de caractères: Ce module définit plusieurs
fonctions pour manipuler des chaînes de caractères telles que la conversion en majuscules, la
conversion en minuscules et l'inversion de la chaîne de caractères.

Pr. Hind Lamharhar 46

46

23
4/25/24

Bibliothèques et modules: Création des modules


• Module module_moyenne • Module: module_ope_math

• Module: module_manip_chaine

Pr. Hind Lamharhar 47

47

Bibliothèques et modules: Utilisation des modules


• Une fois le module est crée, vous pouvez l'utiliser dans un autre programme en l’important:

• Une fois le module importé, vous pouvez utiliser les fonctions, les classes et les variables qu'il contient
en utilisant le nom du module suivi du nom de l'élément, comme suit :

• Python dispose également d'une fonction d'importation de modules plus avancée, appelée
"from...import". Cette fonction permet d'importer des éléments spécifiques d'un module sans avoir à
utiliser le nom du module à chaque fois. Voici un exemple :

Pr. Hind Lamharhar 48

48

24
4/25/24

Bibliothèques et modules: Utilisation des modules


Voici des exemples d'appels de modules précédents et de leurs fonctions:
1. calculer la moyenne d'une liste de nombres : Ce code importe le module "mon_module" et appelle la
fonction "moyenne" pour calculer la moyenne de la liste donnée.
2. Appel du module (module_ope_math ) pour effectuer des opérations mathématiques de base
3. Appel du module (module_manip_chaine) pour manipuler des chaînes de caractères

import module_moyenne import module_ope_math import module_manip_chaine

Pr. Hind Lamharhar 49

49

Bibliothèques et modules: Utilisation des modules


• Création d'un module utils qui contient une fonction lire_fichier pour lire le contenu d'un
fichier et une fonction ecrire_fichier pour écrire dans un fichier

Pr. Hind Lamharhar 50

50

25
4/25/24

Bibliothèques et modules: Utilisation des modules


• La deuxième façon est d'importer des fonctions ou des classes spécifiques du module en
utilisant l'instruction d'importation suivie du nom de la fonction ou de la classe :

• La troisième façon est d'importer toutes les fonctions et classes du module en utilisant
l'instruction d'importation suivie d'une astérisque (*) :

• Il est également possible de renommer un module ou une fonction importée en utilisant


l'instruction as. Par exemple :

Pr. Hind Lamharhar 51

51

Bibliothèques et modules
• Python possède une vaste bibliothèque standard qui contient des modules pour effectuer des
opérations telles que la manipulation de fichiers, le traitement des chaînes de caractères, les opérations
mathématiques, les opérations sur les dates et heures, l'analyse de données, la visualisation, etc.
• En plus de la bibliothèque standard, il existe également des bibliothèques qui peuvent être installées à
l'aide d'un gestionnaire de paquets tel que pip. Ces bibliothèques peuvent ajouter des fonctionnalités
supplémentaires à Python pour des tâches spécifiques telles que le traitement de données,
l'apprentissage automatique, la visualisation de données, etc.
• Exemples de bibliothèques:
• Bibliothèque standard : os, sys, math, datetime, random, etc.
• Numpy pour les calculs mathématiques avancés
• Pandas pour la manipulation de données et l'analyse
• Matplotlib pour la visualisation de données
• Flask pour le développement d'applications web
• Tensorflow pour l'apprentissage automatique et l'intelligence artificielle

Pr. Hind Lamharhar 52

52

26
4/25/24

Bibliothèques et modules:math
• fournit des fonctions mathématiques courantes, comme le calcul de la racine carrée ou de la
fonction trigonométrique.

Pr. Hind Lamharhar 53

53

Bibliothèques et modules: os
Gestion des fichiers et des dossiers
• En Python, la gestion des fichiers et des
dossiers peut être effectuée en utilisant la
bibliothèque intégrée os. Cette bibliothèque
fournit un grand nombre de fonctions pour
interagir avec le système de fichiers, telles
que la création, la suppression, la copie et le
déplacement de fichiers et de dossiers, ainsi
que la vérification de leur existence.
• Voici un exemple de programme Python qui
utilise la bibliothèque os pour créer un
dossier, y écrire un fichier texte, puis lire son
contenu et l'afficher à l'écran :

Pr. Hind Lamharhar 54

54

27
4/25/24

Bibliothèques et modules: os
Gestion des fichiers et des dossiers
[Link]() : Cette méthode retourne le répertoire de
travail actuel.
[Link]() : Cette méthode retourne une liste des fichiers
et répertoires présents dans un répertoire donné.
[Link]() : Cette méthode permet de créer un nouveau
répertoire.
[Link]() : Cette méthode permet de supprimer un
répertoire vide.
[Link]() : Cette méthode permet de supprimer un
fichier.
[Link]() : Cette méthode permet de renommer un
fichier ou un répertoire.

Pr. Hind Lamharhar 55

55

TD 4
Bibliothèques et modules
• Créer et importer les modules suivants:
1. Créez un module contenant une fonction qui prend une liste en entrée et renvoie une liste avec
tous les éléments en double supprimés.
2. Créez et importer un module contenant une fonction qui prend un dictionnaire en entrée et
renvoie une liste des clés triées dans l'ordre croissant.
3. Créez un module contenant une fonction qui convertit des degrés Celsius en degrés Fahrenheit et
une autre fonction qui convertit des degrés Fahrenheit en degrés Celsius.
4. Écrire un module nommé qui contient une fonction nommée qui prend deux chaînes de
caractères en entrée et renvoie la concaténation des deux chaînes.

Pr. Hind Lamharhar 56

56

28
4/25/24

Environnement de développement

Pr. Hind Lamharhar 57

57

Environnement de développement
Environnement virtuels
Méthodes de Création d'Environnements Virtuels : Qu'est-ce qu'un Environnement Virtuel ?

vVirtualenv : Un outil populaire pour créer des vUn environnement virtuel est un
environnements virtuels. environnement Python isolé qui permet
vvenv (depuis Python 3.3) : Module intégré à Python de travailler sur des projets Python
pour créer des environnements virtuels. spécifiques avec des dépendances
vConda (Anaconda) : En plus de gérer les packages, personnalisées, sans interférer avec
Conda peut également créer des environnements d'autres projets ou installations Python
virtuels. sur votre système.
vPyenv : Permet de gérer différentes versions de
Python et de créer des environnements virtuels
associés.
vPipenv : Un gestionnaire de dépendances qui intègre
la gestion d'environnements virtuels.
Pourquoi Utiliser des Environnements Virtuels?
Choix de la Méthode & Bonnes Pratiques
La méthode à utiliser dépend des besoins spécifiques vIsolation : Évitez les conflits entre les versions
du projet, de la familiarité de l'utilisateur avec l'outil de packages et les dépendances de différents
et de la compatibilité avec d'autres outils et projets.
workflows. vRéplicabilité : Assurez-vous que votre projet
v Nommer les Environnements : Utiliser des noms significatifs pour peut être reproduit sur d'autres machines avec
identifier les environnements, en se basant sur le projet ou l'objectif. la même configuration d'environnement.
v Documenter les Dépendances : Garder une liste des dépendances et
vPropreté : Gardez votre installation Python
des versions installées pour assurer la reproductibilité du projet.
principale propre en installant uniquement les
v Activation et Désactivation : S'habituer à activer et désactiver les
packages nécessaires à chaque projet.
environnements virtuels selon les besoins du projet.
Pr. Hind Lamharhar 58

58

29
4/25/24

Environnement de développement
Créer et Utiliser un Environnement sur Mac/Windows/Linux
1. Création d'un Environnement :
a) Utilisez la commande conda create --name <nom_env>, remplacez <nom_env> par le nom de votre environnement.
b) Spécifiez les packages à installer, par exemple : conda create --name mon_env {python=3.8 numpy pandas}.
2. Activation et Désactivation de l'Environnement :
• Pour activer l'environnement :
v Sur Windows : conda activate <nom_env>.
v Sur Mac/Linux : source activate <nom_env>.
• Pour désactiver l'environnement :
v Sur Windows : conda deactivate. Conda (Anaconda) :
v Sur Mac/Linux : conda deactivate (pas source) [Link]
3. Utilisation de l'Environnement : -guide/tasks/[Link]
v Une fois activé, vous pouvez installer et utiliser des packages comme d'habitude.
venv (depuis Python 3.3)
v Tous les packages installés seront spécifiques à cet environnement. [Link]
4. Suppression de l'Environnement : environments/virtualenv
• Pour supprimer un environnement : conda env remove --name <nom_env>.
• Assurez-vous de désactiver l'environnement avant de le supprimer.

Pr. Hind Lamharhar 59

59

Environnement de développement
Créer et Utiliser un Environnement sur Mac/Windows/Linux
1- Création d'un Environnement 2- Activation

3- Désactivation

Pr. Hind Lamharhar 60

60

30
4/25/24

Environnement de développement
Configuration du kernel sur jupyter

[Link] du Kernel dans l'Environnement Virtuel :


• Assurez-vous que Jupyter est installé dans votre environnement virtuel,
• Ensuite, installez le kernel IPython associé à votre environnement virtuel, Si vous utilisez Virtualenv ou
venv (automatiquement)
• Pour Conda: : conda install ipykernel
[Link] du Kernel à Jupyter :
• l'ajouter à Jupyter: python -m ipykernel install --user --name=<nom_env>
• Remplacez <nom_env> par le nom de votre environnement virtuel. Cette commande enregistre le
kernel dans le répertoire des kernels utilisateurs de Jupyter.
3.Vérification du Kernel : Redémarrez votre serveur Jupyter en fermant et en relançant le notebook.

Pr. Hind Lamharhar 61

61

1 conda install ipykernel

2 Ajout du Kernel à Jupyter:


python -m ipykernel install --user --name=envisnea

3 Vérification: jupyter notebook

Pr. Hind Lamharhar 62

62

31
4/25/24

Environnement de développement
Création d’un projet (VS Code)
• Objectif : Pratiquer la création d'un module Python avec une fonction et son utilisation dans un notebook avec un environnement virtuel configuré
dans Visual Studio Code.
11. Création du Workspace : Ouvrez Visual Studio Code et Créez un nouveau workspace nommé « insea_workspace»
22. Création d'un Fichier Python :
3 • Dans le dossier « insea_projet », créez un nouveau fichier Python nommé "[Link]".
• Dans le fichier "[Link]", définissez une fonction nommée « afficher »qui imprime "This is my first module".
43. Activation de l'Environnement Virtuel :
• Ouvrez le terminal intégré de VS Code (Ctrl+`).
• Activez l'environnement virtuel "envinsea" avec la commande appropriée.
54. Création d'un Notebook : Dans le dossier « insea_projet », créez un nouveau fichier notebook nommé "[Link] »
5. Configuration de l'Environnement dans le Notebook : Ouvrez le fichier "[Link]" et configurez l'environnement virtuel "envinsea" comme kernel
6
pour le notebook.
a. Importation du Module dans le Notebook : Dans le notebook, importez le module "[Link]" en utilisant la commande d'importation.
b. Test de la Fonction dans le Notebook : Appelez la fonction afficher du module "[Link]" dans le notebook pour vérifier qu'elle s'exécute
correctement.
c. Exécution et Vérification : exécuter et Vérifiez que le message "This is my first module" est correctement affiché dans le notebook.

Pr. Hind Lamharhar 63

63

Environnement de développement
Création d’un projet (VS Code)
1
3
2

5 4

Pr. Hind Lamharhar 64

64

32
4/25/24

Partie 1: Introduction à la
programmation avec Python

65

Approche procédurale vs. Approche orientée objets

Pr. Hind Lamharhar 66

66

33
4/25/24

Approche procédurale
• Approche procédurale ou fonctionnelle

Pr. Hind Lamharhar 67

67

Approche Procédurale vs Approche Orientée Objet


• Que doit faire mon programme ?
• Identifier liste des tâches et des opérations à exécuter.
• Le programme est composé d’un ensemble de fonctions
(et procédures) permettant de résoudre un problème.
• Principe : séparer les données des moyens de
traitement de ces données.
• Priorité aux traitements: déterminé les fonctions puis
trouver la manière appropriée pour stocker les
données
• Exemples de langages : C, Fortran, Lisp, …

Pr. Hind Lamharhar 68

68

34
4/25/24

Approche Procédurale vs Approche Orientée Objet


• De quoi doit être composé mon programme?
• Un programme est composé d’objets qui
interagissent (communiquent) afin de réaliser
une ou plusieurs tâches.
• Chaque objet contient des données ”internes”
et des traitements manipulant ces données
internes ou d’autres données
• Principe : chaque objet accomplit quelques
tâches associées et si un objet dépend d’une
tâche qui n’est pas de sa responsabilité, il doit
avoir accès à un autre objet capable d’accomplir
cette tâche
• Langages de POO : Java, C++, Python,etc.

Pr. Hind Lamharhar 69

69

Programmation Procédurale vs POO


• Programmation Procédurale • Programmation Orientée Objet

Pr. Hind Lamharhar 70

70

35
4/25/24

Programmation Procédurale vs POO


• Programmation procédurale: concevoir un ensemble de fonctions (et procédures) permettant de
résoudre un problème.
• Approche OO propose une méthodologie de programmation centrée sur les objets où un objet peut être
vu comme une entité regroupant un ensemble de données et de méthodes de traitement
• Approche OO s'agit donc :
• de déterminer les objets présents dans le programme: on commence par décider quels objets
doivent être inclus dans le programme.
• d'identifier leurs données
• de définir les traitements à faire sur ses objets
• Approche OO met les données au premier plan avant de déterminer l’algorithme qui sera employé pour opérer
sur ces données

Pr. Hind Lamharhar 71

71

Exemple: Gestion de bibliothèque


• Approche Procédurale • Approche OO

Pr. Hind Lamharhar 72

72

36
4/25/24

POO en python
• Les concepts clés de la POO sont les suivants :
• Les classes : une classe est un modèle qui définit les caractéristiques et les comportements d'un
objet. Elle est définie à l'aide du mot-clé "class".
• Les objets : Un objet est une instance d'une classe, qui peut avoir des attributs (propriétés) et des
méthodes (fonctions) qui lui sont propres.
• Les attributs : un attribut est une variable associée à un objet. Il peut être défini dans la classe ou
dans l'objet.
• Les méthodes : une méthode est une fonction associée à un objet. Elle peut être définie dans la
classe ou dans l'objet.

Pr. Hind Lamharhar 73

73

POO en python

Pr. Hind Lamharhar 74

74

37
4/25/24

POO en python

Pr. Hind Lamharhar 75

75

POO en Python:
Notions: « class »
• la définition d'une classe commence par le mot-clé "class", suivi du nom de la classe et des deux-points.
• Les méthodes de la classe sont définies à l'intérieur de la classe et peuvent avoir des arguments, comme
les fonctions.
• Exemple de définition de classe en Python : Dans cet exemple, nous avons défini une classe appelée
"Personne".
• La classe a deux attributs, "nom" et "age"
• La méthode "init" est appelée pour créer des objets l
• La classe a également une méthode appelée "parler" qui prend un argument "message" et affiche le
message à l'écran.

Pr. Hind Lamharhar 76

76

38
4/25/24

POO en Python:
Notions: Constructeur
• Constructeur est une méthode spéciale qui est appelée automatiquement lorsqu'un nouvel
objet est créé à partir d'une classe.
• Le constructeur est utilisé pour initialiser les attributs d'un objet à des valeurs spécifiques.
• Le nom de la méthode constructeur est "init". Il prend en charge le paramètre "self", qui fait
référence à l'objet lui-même, ainsi que d'autres paramètres qui peuvent être utilisés pour
initialiser les attributs de l'objet.
• Exemple:

Pr. Hind Lamharhar 77

77

POO en Python:
Notions: « objet »
• Pour créer un nouvel objet à partir de la classe, nous utilisons le nom de la classe suivi des parenthèses.
Nous pouvons ensuite accéder aux attributs et méthodes de l'objet à l'aide de la notation point.
• Dans cet exemple, nous avons créé un nouvel objet "personne1" à partir de la classe "Personne".
• Nous avons passé les valeurs »Ahmed" et 25 comme arguments pour les attributs "nom" et "age".
• Nous avons ensuite appelé la méthode "parler" de l'objet "personne1" avec le message "Bonjour!".
• Enfin, nous avons accédé aux attributs "nom" et "age" de l'objet à l'aide de la notation point et les
avons affichés à l'écran.
• Le résultat de ce code est l'affichage de « Ahmed dit : Bonjour! » suivi de « Ahmed » et « 25 ».

personne1 = Personne(”Ahmed", 25)


[Link]("Bonjour!")
print([Link])
print([Link])
Pr. Hind Lamharhar 78

78

39
4/25/24

POO en Python:
Notions: Exercice
1. Créez une classe Python appelée Voiture qui a les attributs suivants:
• marque
• modèle
• vitesse
• moteur (essence ou diesel)
2. Ajoutez un constructeur à la classe Voiture qui initialise les attributs ci-dessus lorsque l'on
crée un nouvel objet de la classe.
3. Ajoutez une méthode à la classe Voiture appelée accélérer qui augmente la vitesse de « v »
km/h à chaque fois que cette méthode est appelée.
4. Ajoutez une méthode à la classe Voiture appelée afficher_vitesse qui affiche la vitesse
actuelle de la voiture.
5. Créez un objet de la classe Voiture et utilisez les méthodes accélérer et afficher_vitesse pour
vérifier que tout fonctionne correctement.

Pr. Hind Lamharhar 79

79

POO en Python:
Notions: Corrigé
marque
modèle
vitesse
moteur (essence ou diesel)
1. Ajoutez un constructeur à la classe Voiture qui initialise les
attributs ci-dessus lorsque l'on crée un nouvel objet de la
classe.
2. Ajoutez une méthode à la classe Voiture appelée accélérer qui
augmente la vitesse de « v » km/h à chaque fois que cette
méthode est appelée.
3. Ajoutez une méthode à la classe Voiture appelée
afficher_vitesse qui affiche la vitesse actuelle de la voiture.
4. Créez un objet de la classe Voiture et utilisez les méthodes
accélérer et afficher_vitesse pour vérifier que tout fonctionne
correctement.
Note: La méthode format est une méthode de la classe str qui permet de formater une chaîne de caractères en y
insérant des valeurs de manière dynamique. Elle utilise des indicateurs de formatage {} dans la chaîne de
caractères qui seront remplacés par des valeurs.

Pr. Hind Lamharhar 80

80

40
4/25/24

Module avec une classe (Exemple)


• Création d'un module personne qui contient une classe Personne:

Pr. Hind Lamharhar 81

81

Héritage: Exemple (gestion d’une bibliothèque)

Pr. Hind Lamharhar 82

82

41
4/25/24

Héritage: Exemple (gestion d’une bibliothèque)

Pr. Hind Lamharhar 83

83

POO en python: Héritage

L'héritage en POO permet de créer une


nouvelle classe à partir d'une classe
existante, en héritant de ses attributs et
méthodes.

La nouvelle classe héritera de toutes les


fonctionnalités de la classe parente, mais
pourra également ajouter des attributs et
des méthodes spécifiques à son propre
comportement.

Pr. Hind Lamharhar 84

84

42
4/25/24

POO en Python: Héritage


Exercice: Gestion de la bibliothèque

Pr. Hind Lamharhar 85

85

POO en Python: Héritage


Exercice
• Supposons que vous ayez une classe Produit qui représente un produit avec des attributs tels
que nom, description et prix, ainsi qu'une méthode pour afficher ces informations. Vous devez
maintenant créer deux sous-classes de cette classe : ProduitAlimentaire et ProduitElectronique.
• La classe ProduitAlimentaire doit hériter de la classe Produit et avoir un attribut
supplémentaire dateExpiration qui représente la date d'expiration du produit. De plus, vous
devez ajouter une méthode dans cette classe qui permet d’afficher non seulement le nom, la
description et le prix du produit, mais aussi sa date d'expiration.
• La classe ProduitElectronique doit également hériter de la classe Produit et avoir un attribut
supplémentaire garantie qui représente la garantie du produit. De plus, vous devez ajouter une
méthode dans cette classe qui permet d’afficher non seulement le nom, la description et le prix
du produit, mais aussi sa garantie.

Pr. Hind Lamharhar 86

86

43
4/25/24

Plan
1. Python : Introduction à la programmation avec Python types de données, opérations
arithmétiques et logiques, boucles, conditions, fonctions, classes et objets, gestion d'erreurs et
exceptions, bibliothèques et modules.
2. NumPy : Introduction à NumPy, tableaux NumPy, création et manipulation de tableaux,
fonctions universelles, indexation et tranchage, agrégation de données, filtrage de données,
lecture et écriture de fichiers, fonctions mathématiques.
3. Pandas : Introduction à Pandas, structures de données en Pandas, manipulation de données en
Pandas, indexation et tranchage, regroupement de données, jointures de données, nettoyage
de données, visualisation de données.
4. Analyse de données : Analyse de données exploratoire, nettoyage de données, extraction de
caractéristiques, analyse statistique, visualisation de données, modèles de machine learning.
5. Applications pratiques : Applications pratiques de Python, NumPy et Pandas dans des
domaines tels que la science des données, l'apprentissage automatique, l'analyse financière, la
bioinformatique, etc.

Pr. Hind Lamharhar 87

87

Partie 2: Python pour la science


de données avec Numpy

88

44
4/25/24

Introduction à Numpy
• Abréviation de « Numerical Python ».
• Objectifs :
• Comprendre les avantages de numpy par rapport aux listes pour la manipulation de
données
• Savoir utiliser les principales fonctionnalités de numpy, telles que la création de tableaux,
les opérations mathématiques et statistiques, le filtrage et le tri
• Être capable de traiter des données numériques et de réaliser des analyses de données
simples en utilisant numpy

Pr. Hind Lamharhar 89

89

Introduction à Numpy
1. Introduction à numpy
• Présentation de numpy et ses avantages par rapport aux listes
• Création de tableaux numpy
• Accès aux éléments d'un tableau numpy
• Opérations mathématiques et statistiques de base avec numpy
2. Fonctionnalités avancées de numpy
• Filtrage et tri de tableaux numpy
• Concaténation et division de tableaux numpy
• Opérations de transformation de tableaux numpy
3. Traitement de données numériques avec numpy
• Chargement de données à partir de fichiers
• Manipulation et traitement de données avec numpy
• Analyses statistiques simples avec numpy
4. Applications pratiques
• Utilisation de numpy pour des projets de science des données
• Projets pratiques utilisant numpy pour l'analyse de données
Pr. Hind Lamharhar 90

90

45
4/25/24

Introduction
• NumPy est une bibliothèque Python pour le calcul numérique qui fournit des structures de données
pour stocker des tableaux multidimensionnels de manière efficace. Il est souvent utilisé en conjonction
avec d'autres bibliothèques pour les applications scientifiques, notamment Pandas, Matplotlib, SciPy et
Scikit-learn.
• La présentation de NumPy et de ses fonctionnalités peut être divisée en trois parties principales :
1. Introduction à NumPy et ses avantages par rapport aux listes Python
2. Présentation de la structure de données ndarray (n-dimensional array)
3. Exemples d'utilisation de NumPy dans des applications scientifiques et de traitement de données
1. Introduction à NumPy et ses avantages par rapport aux listes Python :
• NumPy offre des performances plus élevées et une meilleure utilisation de la mémoire, en utilisant
des tableaux de données optimisés pour les calculs numériques.
• NumPy permet également de manipuler des tableaux de données multi-dimensionnels avec une
grande facilité
Pr. Hind Lamharhar 91

91

Introduction
2. Présentation de la structure de données ndarray (n-dimensional array) : La structure de données
principale de NumPy est l'ndarray, un tableau de données multi-dimensionnel.
• Les tableaux NumPy peuvent être créés à partir de listes Python
• Les tableaux NumPy peuvent être utilisés pour effectuer des opérations mathématiques vectorielles
et matricielles sur des données numériques.
• Les tableaux NumPy offrent également des fonctionnalités de slicing avancées, permettant
d'extraire facilement des sous-tableaux de données.
3. Exemples d'utilisation de NumPy : NumPy est largement utilisé dans les applications scientifiques et
de traitement de données, telles que la physique,le traitement d'images, le traitement de signaux, la
modélisation statistique …
• NumPy est également utilisé dans de nombreuses autres bibliothèques Python pour l'analyse de
données, telles que Pandas, Matplotlib et SciPy

Pr. Hind Lamharhar 92

92

46
4/25/24

Introduction
1. Introduction à numpy
• Présentation de numpy et ses avantages par rapport aux listes
• Création de tableaux numpy
• Accès aux éléments d'un tableau numpy
• Opérations mathématiques et statistiques de base avec numpy
2. Fonctionnalités avancées de numpy
• Filtrage et tri de tableaux numpy
• Concaténation et division de tableaux numpy
• Opérations de transformation de tableaux numpy
3. Traitement de données numériques avec numpy
• Chargement de données à partir de fichiers
• Manipulation et traitement de données avec numpy
• Analyses statistiques simples avec numpy
4. Applications pratiques
• Utilisation de numpy pour des projets de science des données
• Projets pratiques utilisant numpy pour l'analyse de données

Pr. Hind Lamharhar 93

93

Introduction: Numpy vs. Liste


• Les avantages de numpy par rapport aux listes Python :
1. Les tableaux numpy sont plus efficaces pour stocker et manipuler de grandes quantités de données
que les listes.
2. Les opérations mathématiques et statistiques de base peuvent être effectuées sur des tableaux
numpy.
3. Les tableaux numpy prennent en charge les opérations de diffusion (broadcasting) qui permettent
de réaliser des opérations sur des tableaux de formes différentes sans avoir à écrire des boucles
explicites.
4. Numpy dispose d'une large gamme de fonctions de traitement d'images et de signal

Pr. Hind Lamharhar 94

94

47
4/25/24

Introduction:
Création de tableaux unidimensionnels et multidimensionnels
• NumPy permet de créer des tableaux multidimensionnels avec n'importe quel nombre de dimensions. Par exemple,
un tableau à deux dimensions peut être utilisé pour stocker des données en deux dimensions, telles que les
coordonnées x et y d'un point dans un plan cartésien.
• Utilisation de la méthode [Link] pour créer des tableaux : La méthode [Link] est l'une des principales
façons de créer un tableau NumPy. Elle prend en entrée une liste ou un tuple Python et crée un tableau NumPy
correspondant. Par exemple, pour créer un tableau unidimensionnel de nombres, on peut utiliser :

• Utilisation de [Link] et [Link] pour créer des tableaux de zéros et de uns respectivement :
• La méthode [Link] crée un tableau avec des éléments de valeur zéro,
• tandis que la méthode [Link] crée un tableau avec des éléments de valeur un.
• Par exemple, pour créer un tableau unidimensionnel de zéros avec 5 éléments, on peut utiliser :

Pr. Hind Lamharhar 95

95

Introduction:
Création de tableaux unidimensionnels et multidimensionnels
• Pour créer un tableau bidimensionnel de uns avec 3 lignes et 4 colonnes, on peut utiliser :

• Utilisation de [Link] pour créer des tableaux avec des éléments espacés régulièrement : La méthode
[Link] est utilisée pour créer un tableau avec des éléments espacés régulièrement. Elle prend en entrée les
bornes inférieure et supérieure de la plage de valeurs et l'incrément de la plage. Par exemple, pour créer un tableau
unidimensionnel avec des valeurs de 0 à 9 inclus, on peut utiliser :

• Utilisation de [Link] pour créer des tableaux avec des éléments générés aléatoirement : La sous-
bibliothèque [Link] est utilisée pour créer des tableaux avec des éléments générés aléatoirement. Par
exemple, pour créer un tableau unidimensionnel avec des valeurs aléatoires entre 0 et 1, on peut utiliser :

• Pour créer un tableau bidimensionnel avec des valeurs aléatoires générées à partir d'une distribution normale
(gaussienne), on peut utiliser :

Pr. Hind Lamharhar 96

96

48
4/25/24

Introduction:
Tableaux: Accès
• Accès aux éléments d'un tableau numpy : Pour accéder aux éléments d'un tableau NumPy, on peut
utiliser l'indexation ou le tranchage (slicing) comme suit :
1. Indexation : Pour accéder à un élément unique du tableau, on peut utiliser son index comme suit:

1. Tranchage (slicing) : Pour accéder à un sous-tableau (slice) du tableau, on peut utiliser le


tranchage qui permet de spécifier le début, la fin et le pas de l'intervalle souhaité.

1. Pour accéder à un élément spécifique d'un sous-tableau, on peut utiliser l'indexation après le
tranchage, comme suit :

Pr. Hind Lamharhar 97

97

Introduction:
Opérations mathématiques et statistiques
• Les tableaux numpy prennent en charge une large gamme d'opérations mathématiques et
statistiques de base, notamment :
• Les opérations arithmétiques de base, telles que l'addition, la soustraction, la multiplication et la
division.
• Les fonctions mathématiques de base, telles que sin(), cos(), tan(), exp() et log().
• Les fonctions statistiques de base, telles que mean(), median(), std() et var().
• Par exemple, pour calculer la moyenne d'un tableau numpy, nous pouvons utiliser la fonction
mean() comme suit :

Pr. Hind Lamharhar 98

98

49
4/25/24

Introduction:
Opérations mathématiques et statistiques
1. La fonction sinus : [Link](x)
• Elle prend en entrée un tableau numpy ou un scalaire et renvoie
le sinus de chaque élément.
2. La fonction exponentielle : [Link](x)
• Elle prend en entrée un tableau numpy ou un scalaire et renvoie
l'exponentielle de chaque élément.
3. La fonction racine carrée : [Link](x)
• Elle prend en entrée un tableau numpy ou un scalaire et renvoie
la racine carrée de chaque élément
4. La fonction logarithme : [Link](x)
• Elle prend en entrée un tableau numpy ou un scalaire et renvoie
le logarithme naturel de chaque élément.
5. La fonction arrondi : [Link](x, n)
• Elle prend en entrée un tableau numpy ou un scalaire et renvoie
chaque élément arrondi au nombre de décimales spécifié par n.
Pr. Hind Lamharhar 99

99

Introduction:
Opérations mathématiques et statistiques
• [Link]() : calcule la moyenne d'un tableau.
• [Link]() : calcule la médiane d'un tableau.
• [Link]() : calcule la variance d'un tableau.
• [Link]() : calcule l'écart-type d'un tableau.
• [Link]() : calcule le percentile donné d'un tableau.

• Résultat :

Pr. Hind Lamharhar 100

100

50
4/25/24

Exercice: Manipuler des tableaux et des opérations


mathématiques et statistiques
• Ex1. opérations mathématiques
1. Créez un tableau numpy 1D contenant les valeurs suivantes : 3, 6, 9, 12, 15.
2. Créez un deuxième tableau numpy 1D contenant les valeurs suivantes : 2, 4, 6, 8, 10.
3. Effectuez une addition entre les deux tableaux et stockez le résultat dans un nouveau tableau.
4. Effectuez une soustraction entre les deux tableaux et stockez le résultat dans un nouveau tableau.
5. Multipliez chaque élément du premier tableau par 2 et stockez le résultat dans un nouveau tableau.
6. Calculez la somme de tous les éléments du deuxième tableau et affichez-la.
7. Calculez la moyenne des éléments du premier tableau et affichez-la.
8. Créez un tableau 2D numpy de dimensions 3x3 contenant des valeurs entières aléatoires entre 1 et 10.
9. Calculez la somme de chaque colonne du tableau 2D et affichez-la.

Pr. Hind Lamharhar 101

101

Exercice: Manipuler des tableaux et des opérations


mathématiques et statistiques
• EX2. opérations statistiques
• Supposons que vous ayez un ensemble de données représentant la taille (en mètres) et le
poids (en kilogrammes) de 10 personnes :
• tailles = [1.50, 1.62, 1.75, 1.80, 1.68, 1.82, 1.65, 1.70, 1.58, 1.92]
• poids = [50, 56, 70, 75, 62, 80, 65, 68, 55, 90]
[Link]éer deux tableaux numpy à partir des listes de données
[Link] la moyenne, la médiane et l'écart-type pour chaque tableau
[Link] la covariance et le coefficient de corrélation entre les deux tableaux

Pr. Hind Lamharhar 102

102

51
4/25/24

Introduction à Numpy
1. Introduction à numpy
• Présentation de numpy et ses avantages par rapport aux listes
• Création de tableaux numpy
• Accès aux éléments d'un tableau numpy
• Opérations mathématiques et statistiques de base avec numpy
2. Fonctionnalités avancées de numpy
• Filtrage et tri de tableaux numpy
• Concaténation et division de tableaux numpy
• Opérations de transformation de tableaux numpy
3. Traitement de données numériques avec numpy
• Chargement de données à partir de fichiers
• Manipulation et traitement de données avec numpy
• Analyses statistiques simples avec numpy
4. Applications pratiques
• Utilisation de numpy pour des projets de science des données
• Projets pratiques utilisant numpy pour l'analyse de données

Pr. Hind Lamharhar 103

103

Fonctionnalités avancées
Les fonctionnalités avancées de NumPy comprennent des méthodes pour filtrer et trier les
tableaux, concaténer et diviser des tableaux, ainsi que des opérations de transformation de
tableaux.
1. Filtrage et tri de tableaux
2. Concaténation et division de tableaux
3. Opérations de transformation de tableaux

Pr. Hind Lamharhar 104

104

52
4/25/24

Fonctionnalités avancées
Filtrage et tri de tableaux
• Filtrer les valeurs supérieures à une certaine • Trier un tableau en ordre croissant :
limite dans un tableau :

• Trier un tableau en ordre décroissant:

Pr. Hind Lamharhar 105

105

Fonctionnalités avancées
Concaténation et division de tableaux
• Concaténer deux tableaux en une seule • Diviser un tableau en plusieurs sous-tableaux

Pr. Hind Lamharhar 106

106

53
4/25/24

Fonctionnalités avancées
Opérations de transformation de tableaux
• Transposer un tableau : • Aplatir un tableau à une dimension :

• Réarrangement des dimensions : Permet de


changer la forme d'un tableau en utilisant la
fonction [Link]().

Pr. Hind Lamharhar 107

107

Fonctionnalités avancées
Autres opérations
• Répétition d'éléments : • Résolution d'une équation linéaire :
• Permet de répéter un tableau un certain • Permet de résoudre un système d'équations
nombre de fois dans une direction donnée à linéaires à l'aide de la fonction
l'aide de la fonction [Link](). [Link]().

Pr. Hind Lamharhar 108

108

54
4/25/24

Introduction à Numpy
1. Introduction à numpy
• Présentation de numpy et ses avantages par rapport aux listes
• Création de tableaux numpy
• Accès aux éléments d'un tableau numpy
• Opérations mathématiques et statistiques de base avec numpy
2. Fonctionnalités avancées de numpy
• Filtrage et tri de tableaux numpy
• Concaténation et division de tableaux numpy
• Opérations de transformation de tableaux numpy
3. Traitement de données numériques avec numpy
• Chargement de données à partir de fichiers
• Manipulation et traitement de données avec numpy
• Analyses statistiques simples avec numpy
4. Applications pratiques
• Utilisation de numpy pour des projets de science des données
• Projets pratiques utilisant numpy pour l'analyse de données

Pr. Hind Lamharhar 109

109

Traitement de données numériques


Chargement de données à partir de fichiers
• La bibliothèque NumPy permet de charger des données à partir de fichiers et de les stocker dans des
tableaux NumPy pour une manipulation ultérieure. Voici quelques exemples de fonctions de chargement
de données disponibles dans NumPy :
1. [Link] : Cette méthode est utilisée pour charger des fichiers numpy enregistrés avec [Link] ou
[Link]. Elle charge les données en mémoire sous forme de tableau NumPy. Exemple : data =
[Link]('[Link]').
2. [Link] : Cette méthode est utilisée pour charger des fichiers texte enregistrés sous forme de tableau.
Elle permet de charger des fichiers CSV, TSV et autres, avec des délimiteurs personnalisés. Elle charge les
données en mémoire sous forme de tableau NumPy. Exemple : data = [Link]('[Link]', delimiter=',').
3. [Link] : Cette méthode est utilisée pour charger des fichiers texte enregistrés sous forme de
tableau avec des formats de données complexes. Elle permet de charger des fichiers CSV, TSV et autres, avec
des délimiteurs personnalisés. Elle charge les données en mémoire sous forme de tableau NumPy. Exemple :
data = [Link]('[Link]', delimiter=',', dtype=None, names=True).
4. [Link] : Cette méthode est utilisée pour charger des données binaires enregistrées dans un fichier.
Elle charge les données en mémoire sous forme de tableau NumPy. Exemple : data = [Link]('[Link]',
dtype=np.float32).
Pr. •Hind Lamharhar 110

110

55
4/25/24

Traitement de données numériques


Chargement de données à partir de fichiers
1. [Link](): • Supposons maintenant que nous avons un
• Cette fonction permet de charger des fichier texte « [Link] » avec délimiteur ',' :
données à partir de fichiers de différentes • Ce code charge les données du fichier
formats (CSV, TXT, etc.) dans un tableau [Link] et les stocke dans un tableau numpy
numpy. data.
• Exemple: Supposons que nous avons un • Le paramètre delimiter=',' indique que les
données sont séparées par des virgules.
fichier texte "[Link]" avec le contenu
suivant:

Pr. Hind Lamharhar 111

111

Traitement de données numériques


Chargement de données à partir de fichiers
[Link](): • Pour charger ces données dans un tableau
• Cette fonction permet de charger des numpy, nous pouvons utiliser la fonction
données à partir d'un fichier binaire dans un fromfile() de la manière suivante:
tableau numpy.
• Exemple: Supposons que nous avons un
fichier binaire "[Link]" avec le contenu
suivant:
0x01 0x00 0x00 0x00 0x02 0x00 0x00
0x00 0x03 0x00 0x00 0x00 0x04 0x00 • La sortie sera:
0x00 0x00

• Chaque groupe de 4 octets représente un


entier en format little-endian (le premier
octet est le moins significatif).

Pr. Hind Lamharhar 112

112

56
4/25/24

Traitement de données numériques


Chargement de données à partir de fichiers
[Link]():
• Cette fonction permet de charger des données à partir d'un fichier texte en gérant
automatiquement les valeurs manquantes et en offrant plus de souplesse pour la
spécification des options de chargement.
• Exemple: Supposons que nous avons un fichier texte "[Link]"
avec le contenu suivant:
• Pour charger ces données dans un tableau numpy en utilisant la fonction genfromtxt()
comme suit:

• La sortie sera:

Pr. Hind Lamharhar 113

113

Traitement de données numériques


Manipulation et traitement de données avec numpy
• Une fois les données chargées dans un tableau NumPy, vous pouvez les manipuler et les traiter
à l'aide de fonctions NumPy.
• Par exemple, vous pouvez filtrer les données pour ne garder que les valeurs supérieures à
une certaine limite:

• Vous pouvez également effectuer des opérations mathématiques sur les données
• par exemple, le calcul de la moyenne ou de l'écart type:

Pr. Hind Lamharhar 114

114

57
4/25/24

Traitement de données numériques


Analyses statistiques simples avec numpy
• NumPy offre de nombreuses fonctions pour effectuer des analyses statistiques simples sur les
données, telles que le calcul de la covariance, de la corrélation et de l'histogramme des
données. Par exemple, pour calculer la covariance des données:

Pr. Hind Lamharhar 115

115

Introduction à Numpy
1. Introduction à numpy
• Présentation de numpy et ses avantages par rapport aux listes
• Création de tableaux numpy
• Accès aux éléments d'un tableau numpy
• Opérations mathématiques et statistiques de base avec numpy
2. Fonctionnalités avancées de numpy
• Filtrage et tri de tableaux numpy
• Concaténation et division de tableaux numpy
• Opérations de transformation de tableaux numpy
3. Traitement de données numériques avec numpy
• Chargement de données à partir de fichiers
• Manipulation et traitement de données avec numpy
• Analyses statistiques simples avec numpy
4. Applications pratiques
• Utilisation de numpy pour des projets de science des données
• Projets pratiques utilisant numpy pour l'analyse de données

Pr. Hind Lamharhar 116

116

58
4/25/24

Partie 3: Python pour la science


de données avec Pandas

117

Plan: Pandas
1. Introduction à pandas : 4. Analyse exploratoire de données :
• Présentation de la bibliothèque pandas • Calcul des statistiques descriptives des données
• Avantages de pandas par rapport aux autres outils de • Visualisation des données avec pandas et matplotlib
traitement de données • Traitement et transformation des données pour
2. Structures de données pandas : l'analyse
• Introduction aux objets Series et DataFrame 5. Manipulation avancée de données :
• Création et manipulation d'objets Series • Utilisation de fonctions lambda pour la
• Création et manipulation d'objets DataFrame transformation de données
• Opérations de sélection et de filtrage sur les objets • Utilisation de groupby pour regrouper les données
DataFrame • Utilisation de pivot_table pour créer des tableaux
3. Traitement et nettoyage de données : croisés dynamiques
• Gestion des valeurs manquantes dans les données • Manipulation de données temporelles
• Renommage et réindexation des colonnes et des 6. Applications pratiques :
lignes • Analyse de données financières avec pandas
• Suppression des doublons dans les données • Traitement de données scientifiques avec pandas
• Fusion et jointure de différents jeux de données • Utilisation de pandas pour l'analyse de données du
monde réel
Pr. Hind Lamharhar 118

118

59
4/25/24

Introduction à pandas
Présentation de la bibliothèque pandas
Pandas est une bibliothèque open-source pour le traitement de données en Python. Elle offre des
structures de données performantes et faciles à utiliser, ainsi que des outils pour manipuler et analyser ces
données.

Pr. Hind Lamharhar 119

119

Introduction à pandas
Avantages
[Link] structures de données hautement performantes : pandas offre deux structures de
données principales, les objets Series (pour les données unidimensionnelles) et les objets
DataFrame (pour les données bidimensionnelles)
[Link] outils de manipulation de données : pandas offre une grande variété d'outils pour
manipuler et transformer les données, notamment la sélection, le filtrage, le tri, la fusion et la
jointure de données.
[Link] gestion des données manquantes : pandas offre des outils pour gérer les données
manquantes,
4.L'intégration avec d'autres bibliothèques Python : pandas est conçu pour fonctionner en
tandem avec d'autres bibliothèques Python telles que NumPy et Matplotlib, ce qui facilite
l'analyse et la visualisation de données.
[Link] facilité d'utilisation : pandas est conçu pour être facile à apprendre et à utiliser, ce qui en
fait un choix populaire pour les débutants en traitement de données.
Pr. Hind Lamharhar 120

120

60
4/25/24

Structures de données
• Pandas est une bibliothèque Python très utilisée pour la manipulation et l'analyse de données. Elle offre
des structures de données efficaces pour le traitement de données tabulaires et en série temporelle,
ainsi que des outils pour importer, exporter et nettoyer des données.
• Un objet Series est un tableau à une dimension qui peut contenir une variété de types de données,
y compris des données numériques, des chaînes de caractères et des dates/heure.
• Les éléments sont accessibles par leur index, qui peut être de type entier, chaîne de caractères
ou date/heure.
• Les objets Series sont créés à partir d'un tableau numpy, d'une liste Python ou d'un
dictionnaire.
• Un objet DataFrame est une structure de données tabulaire qui peut contenir des données de
différents types dans des colonnes nommées.
• Les colonnes peuvent être de types différents, y compris des données numériques, des chaînes
de caractères et des dates/heure.
• Les DataFrames peuvent être créés à partir de dictionnaires Python, de fichiers CSV, Excel, SQL,
etc.
Pr. Hind Lamharhar 121

121

Structures de données
Series
• Un objet Series est un tableau à une seule dimension, étiqueté, capable de contenir n'importe
quel type de données. Chaque élément d'un objet Series est associé à une étiquette, appelée
index.
• Voici quelques exemples de création et manipulation d'objets Series avec pandas :
• Créer un objet Series à partir d'une liste : Résultat :

Pr. Hind Lamharhar 122

122

61
4/25/24

Pandas: Structures de données


Series: création et accès
• Créer un objet Series à partir d'un • Accès aux éléments d'une série
dictionnaire : • On peut accéder aux éléments d'une série en
utilisant son index. Voici quelques exemples :

• Résultat

• Résultat :

Pr. Hind Lamharhar 123

123

Pandas: Structures de données


Series: autres operations
• Appliquer une fonction à tous les éléments • Filtrer les éléments d'un objet Series :
d'un objet Series :

• Résultat : • Résultat :

Pr. Hind Lamharhar 124

124

62
4/25/24

Pandas: Structures de données


Series : Manipulation des données d'une série
• On peut appliquer des opérations
mathématiques sur une série, ou bien
ajouter ou supprimer des éléments.

Pr. Hind Lamharhar 125

125

Pandas: Structures de données


DataFrame
• Un objet DataFrame est une structure de données bidimensionnelle et hétérogène, similaire à
une table de base de données ou à une feuille de calcul Excel. Les données sont stockées sous
forme de colonnes, chaque colonne pouvant avoir un type de données différent (ex. chaînes de
caractères, nombres entiers, etc.). Les colonnes sont étiquetées et peuvent être sélectionnées,
filtrées et manipulées
• Création et manipulation d'objets DataFrame :
1.À partir d'un dictionnaire :
2.À partir d'une liste de listes :

Pr. Hind Lamharhar 126

126

63
4/25/24

Pandas: Structures de données


DataFrame: Création
• On peut créer un DataFrame à partir d'un dictionnaire en utilisant la fonction [Link]().
• Chaque clé du dictionnaire représente une colonne du DataFrame et chaque valeur représente une
série de données pour cette colonne.
• Exemple
• le dictionnaire contient trois clés (nom, age et ville), chacune avec une liste de valeurs
correspondantes.
• Le résultat est un objet DataFrame avec quatre lignes (une pour chaque personne) et trois colonnes
(nom, age et ville). Les colonnes sont automatiquement triées par ordre alphabétique dans l'objet
DataFrame.

Pr. Hind Lamharhar 127

127

Pandas: Structures de données


DataFrame: Création
• Nous pouvons également spécifier explicitement l'ordre des colonnes en utilisant le paramètre columns
de la fonction [Link](), comme ceci :

• Dans cet exemple, nous avons spécifié l'ordre des colonnes en utilisant la liste ['nom', 'ville', 'age']. Le
résultat est un objet DataFrame avec les colonnes dans l'ordre spécifié.
• Une fois que nous avons créé un objet DataFrame, nous pouvons effectuer différentes opérations de
sélection et de manipulation sur les données. Par exemple, pour sélectionner une colonne spécifique,
nous pouvons utiliser la notation df['nom_de_la_colonne']. Pour sélectionner plusieurs colonnes, nous
pouvons utiliser une liste de noms de colonnes, comme ceci : df[['nom_colonne_1', 'nom_colonne_2']].
• Pour sélectionner des lignes spécifiques, nous pouvons utiliser la méthode .loc[]. Par exemple, pour
sélectionner
Pr. Hind Lamharhar la première ligne, nous pouvons utiliser [Link][0]. Pour sélectionner plusieurs lignes, nous 128
pouvons utiliser une liste d'index, comme ceci : [Link][[0, 2, 3]].
128 • Enfin, nous pouvons filtrer les données en utilisant une condition. Par exemple, pour sélectionner toutes
les lignes où l'âge est supérieur à 30, nous pouvons utiliser df[df['age'] > 30].

64
4/25/24

Pandas: Structures de données


DataFrame : Création
2.À partir d'une liste de listes :On peut
également créer un DataFrame à partir d'une
liste de listes. Chaque liste interne
représente une ligne du DataFrame.

Résultat :

Pr. Hind Lamharhar 129

129

Pandas: Structures de données


DataFrame: Sélection et filtrage
• On peut sélectionner et filtrer des données dans un DataFrame en utilisant différentes
méthodes.
1.Sélectionner une colonne : 2.Sélectionner plusieurs colonnes :

Pr. Hind Lamharhar 130

130

65
4/25/24

Pandas: Structures de données


DataFrame: Sélection et filtrage
• Filtrage de lignes selon une condition :

• Résultat :

Pr. Hind Lamharhar 131

131

Pandas: Structures de données


DataFrame: Sélection et filtrage
3. Sélection de lignes et de colonnes spécifiques en utilisant la méthode loc() :

• Résultat :

Pr. Hind Lamharhar 132

132

66
4/25/24

Pandas: Structures de données


DataFrame: Sélection et filtrage
4.Sélection de lignes et de colonnes spécifiques en utilisant la méthode iloc() :

• Utilisation de l'opérateur isin() pour filtrer les lignes dont la valeur d'une colonne est dans une
liste donnée :

Pr. Hind Lamharhar 133

133

Pandas: traitement et nettoyage de données

Pr. Hind Lamharhar 134

134

67
4/25/24

Pandas: traitement et nettoyage de données


DataFrame: Renommage et réindexation
• Renommage et réindexation des colonnes et des lignes :

Pr. Hind Lamharhar 135

135

Pandas: Traitement et nettoyage de données


• Suppression des doublons dans les données :

• Fusion et jointure de différents jeux de données :

Pr. Hind Lamharhar 136

136

68
4/25/24

Pandas: Manipulation avancée de données


• Utilisation de fonctions lambda pour la transformation de données
• Les fonctions lambda sont des fonctions anonymes qui peuvent être utilisées pour effectuer des
transformations sur des données dans une colonne spécifique d'un DataFrame. Elles sont
particulièrement utiles pour appliquer des fonctions simples et rapides sur des données.
• Par exemple, supposons que nous avons un DataFrame contenant une colonne "prix" qui est
exprimée en euros et que nous voulons convertir en dollars. Nous pouvons utiliser une fonction
lambda pour appliquer la conversion à chaque valeur de la colonne :

• Cela produira un DataFrame avec une nouvelle colonne "prix_dollar" contenant les prix convertis en
dollars.
Pr. Hind Lamharhar 137

137

Pandas: Manipulation avancée de données


• Utilisation de groupby pour regrouper les données :
• La fonction groupby est utilisée pour regrouper les données en fonction des valeurs d'une ou
plusieurs colonnes et appliquer une fonction d'agrégation à chaque groupe. Cela permet de créer
des résumés statistiques ou de regrouper les données en fonction de critères spécifiques.
• Par exemple, supposons que nous avons un DataFrame contenant des informations sur les ventes
de produits, y compris le produit, la date de vente et le montant de la vente. Nous pouvons utiliser
groupby pour regrouper les ventes par produit et calculer la somme totale des ventes pour chaque
produit :

Cela produira une série


contenant les ventes
totales par produit.

Pr. Hind Lamharhar 138

138

69
4/25/24

Pandas: Manipulation avancée de données


• Utilisation de pivot_table pour créer des tableaux croisés dynamiques : La fonction
pivot_table est utilisée pour créer des tableaux croisés dynamiques à partir d'un DataFrame.
Les tableaux croisés dynamiques sont utiles pour résumer et analyser les données en fonction
de plusieurs variables.
• Par exemple, supposons que nous avons un DataFrame contenant des informations sur les
ventes de produits, y compris le produit, la date de vente et le montant de la vente. Nous
pouvons utiliser pivot_table pour créer un tableau croisé dynamique montrant les ventes
totales pour chaque produit par mois :

Pr. Hind Lamharhar 139

139

Pandas: Manipulation avancée de données


• La manipulation de données temporelles est une fonctionnalité importante de pandas, qui
permet de traiter des données comportant une dimension temporelle. Les données
temporelles peuvent être des dates, des heures, des durées, des fréquences, etc. Les
opérations temporelles comprennent la conversion de types de données, la génération de
plages de dates, la manipulation de dates et d'heures, etc.
• Voici quelques exemples de manipulation de données temporelles en pandas :
• Conversion de types de données temporelles
• Génération de plages de dates
• Manipulation de dates et d'heures
• Calcul de durées

Pr. Hind Lamharhar 140

140

70
4/25/24

Pandas: Manipulation avancée de données


Conversion de types de données temporelles
• Conversion de types de données temporelles : pandas permet de convertir des chaînes de
caractères en dates, heures, etc. en utilisant la fonction to_datetime. Par exemple :

Pr. Hind Lamharhar 141

141

Pandas: Manipulation avancée de données


Génération de plages de dates
• Génération de plages de dates : pandas permet de générer des plages de dates en utilisant la
fonction date_range. Par exemple :

Pr. Hind Lamharhar 142

142

71
4/25/24

Pandas: Manipulation avancée de données


Manipulation de dates et d'heures
• Manipulation de dates et d'heures : pandas permet de manipuler des dates et des heures en
utilisant des fonctions comme year, month, day, hour, minute, second, etc. Par exemple :

Pr. Hind Lamharhar 143

143

Pandas: Manipulation avancée de données


Calcul de durées
• Calcul de durées : pandas permet de calculer des durées en soustrayant des dates ou des
heures. Par exemple :

Pr. Hind Lamharhar 144

144

72
4/25/24

Applications pratiques
• Pour l'analyse de données financières, pandas est souvent utilisé pour importer et traiter les données de
marché, telles que les prix des actions, les indices boursiers et les devises. Les données peuvent être
extraites à partir de fichiers CSV, d'API de marché ou de bases de données financières. Les
fonctionnalités de pandas pour les séries temporelles sont particulièrement utiles pour l'analyse
financière, notamment pour le calcul de rendements, la visualisation de tendances et la détection de
volatilité.
• Pour le traitement de données scientifiques, pandas est utilisé pour importer et traiter les données de
laboratoire, telles que les résultats d'expériences, les mesures et les observations. Les données peuvent
être extraites à partir de fichiers CSV, de bases de données ou de capteurs et équipements de
laboratoire. Les fonctionnalités de pandas pour la manipulation de données, telles que la fusion, la
jointure et l'agrégation, sont utiles pour regrouper et analyser les données scientifiques.
• Enfin, pandas est souvent utilisé pour l'analyse de données du monde réel, telles que les données
d'enquête, les données de vente et les données de trafic. Les fonctionnalités de pandas pour la
manipulation de données, la visualisation et l'analyse statistique sont particulièrement utiles pour
comprendre et interpréter les données du monde réel.

Pr. Hind Lamharhar 145

145

Partie 4: Python pour la science de


données avec Matplotlib
Introduction aux graphiques en Python

146

73
4/25/24

Plan
I. Introduction à Matplotlib IV. Graphiques avancés
1. Installation et configuration de Matplotlib 1. Graphiques en 3D
2. Présentation de l'API de Matplotlib 2. Graphiques de surfaces
3. Utilisation de pyplot pour créer des graphiques 3. Graphiques de contour
simples 4. Graphiques de diffusion de la chaleur
5. Graphiques d'histogramme
II. Types de graphiques
1. Graphiques en barres
V. Visualisation de données réelles
2. Graphiques à points 1. Importation de données avec Pandas
3. Graphiques en nuages de points 2. Utilisation de Pandas pour nettoyer et
4. Graphiques en boîte et moustaches
manipuler les données
5. Graphiques en courbes 3. Création de graphiques pour visualiser les
III. Personnalisation des graphiques données
1. Ajout de titres, de légendes et d'étiquettes d'axe 4. Interactivité avec des widgets
2. Personnalisation des couleurs et des styles de ligne
3. Définition de limites d'axe personnalisées
4. Utilisation de sous-graphiques
Pr. Hind Lamharhar 147

147

Introduction à Matplotlib
Installation et configuration de Matplotlib
• vous pouvez installer Matplotlib en utilisant pip ou conda, selon l'environnement de travail. Par
exemple, pour installer avec pip :

• Après l'installation, vous devez importer la bibliothèque dans votre script Python en utilisant :

Pr. Hind Lamharhar 148

148

74
4/25/24

Introduction à Matplotlib
Présentation de l'API de Matplotlib
• Matplotlib dispose de plusieurs API pour créer des graphiques.
• Les deux principales
• sont la API de pyplot : est la plus simple à utiliser et fournit une interface facile pour créer
des graphiques simples.
• et la API orientée objet.

Pr. Hind Lamharhar 149

149

Introduction à Matplotlib
Utilisation de pyplot
• pyplot fournit des fonctions pour créer différents types de graphiques, tels que des graphiques
en barres, des graphiques en courbes, des graphiques en nuages de points, etc. Voici un
exemple de code pour créer un graphique en barres à partir de données simples :

Ce code crée un graphique en barres à partir de la


liste x et y. Les fonctions xlabel, ylabel et title sont
utilisées pour ajouter des étiquettes aux axes et un
titre au graphique. Enfin, la fonction show est
appelée pour afficher le graphique.

Pr. Hind Lamharhar 150

150

75
4/25/24

Types de graphiques
Graphiques en barres
• Ces graphiques sont utiles pour visualiser des comparaisons entre des catégories distinctes. Les
barres peuvent être empilées les unes sur les autres pour montrer des totaux cumulatifs ou
groupées pour montrer des comparaisons côte à côte. Par exemple, on peut utiliser un
graphique en barres pour montrer les ventes mensuelles de différents produits dans une
entreprise.

Pr. Hind Lamharhar 151

151

Types de graphiques
Graphiques en nuages de points
• Ces graphiques sont utiles pour montrer la répartition des données et la variabilité de celles-ci.
Chaque point représente une observation individuelle et peut être coloré ou marqué en
fonction de différentes variables. Par exemple, on peut utiliser un graphique à points pour
montrer la relation entre la taille et le poids des individus dans une population.

Pr. Hind Lamharhar 152

152

76
4/25/24

Types de graphiques
Graphiques en boîte et moustaches
• Les graphiques en boîte et moustaches, également appelés
graphiques en boîte, sont un type de graphique utilisé
pour représenter les distributions de données. Ils sont
particulièrement utiles pour comparer les distributions
entre différentes catégories ou groupes de données.
• Le graphique en boîte se compose d'une boîte, qui
représente le deuxième et le troisième quartile de la
distribution, une ligne à l'intérieur de la boîte qui
représente la médiane, et des moustaches qui s'étendent
jusqu'à la valeur minimum et maximum, à l'exclusion des
valeurs aberrantes (représentées par des points
individuels).
• Voici un exemple de graphique en boîte et moustaches créé
avec Matplotlib :

Pr. Hind Lamharhar 153

153

Types de graphiques
Graphiques en courbes
• Les graphiques en courbes sont largement utilisés pour représenter des
données qui évoluent avec le temps ou avec une variable continue.
• les graphiques en courbes sont crées avec la fonction plot().
• Exemple: une liste est de 100 valeurs comprises entre 0 et 10 est créer
avec la fonction linspace() de NumPy,
• utilisée comme variable indépendante x.
• La variable dépendante y est calculée comme le sinus de x avec la
fonction sin() de NumPy.
• Ensuite, le graphique en courbes est crée avec la fonction
plot(x,y)
• labels d'axes crées avec les fonctions xlabel() et ylabel() sont , et
titre avec la fonction title().
• Enfin, le graphique est affiché avec la fonction show().
Il est possible de personnaliser davantage le graphique en courbes en ajoutant
Pr. Hind Lamharhar des légendes, des marqueurs, des couleurs, des styles de ligne, etc. 154

154

77
4/25/24

Graphiques avancés
Graphiques en 3D
• Les graphiques en 3D sont des graphiques qui permettent
de visualiser des données en trois dimensions. Matplotlib
propose une API pour la création de graphiques en 3D.
Pour cela, on peut utiliser la classe Axes3D du module
mpl_toolkits.mplot3d.
• Voici un exemple de code pour créer un graphique en 3D
avec Matplotlib :

Pr. Hind Lamharhar 155

155

Graphiques avancés
Graphiques de surfaces
• Les graphiques de surfaces sont des graphiques qui
représentent des données en trois dimensions sous la forme
d'une surface. Matplotlib propose une API pour la création de
graphiques de surfaces. Pour cela, on peut utiliser la fonction
plot_surface de la classe Axes3D.
• Voici un exemple de code pour créer un graphique de surface
avec Matplotlib :

Pr. Hind Lamharhar 156

156

78
4/25/24

Graphiques avancés
Graphiques de contour
• Les graphiques de contour sont des graphiques qui
représentent des données en deux dimensions sous la forme
de courbes de niveau. Matplotlib propose une API pour la
création de graphiques de contour. Pour cela, on peut utiliser
la fonction contour de la classe Axes.
• Voici un exemple de code pour créer un graphique de contour
avec Matplotlib :

Pr. Hind Lamharhar 157

157

Graphiques avancés
Graphiques de diffusion de la chaleur
• Les graphiques de diffusion de la
chaleur, également appelés
graphiques de carte thermique, sont
utilisés pour représenter la répartition
spatiale des données en utilisant des
couleurs pour indiquer la valeur
numérique de chaque point de
données.
• Les graphiques de diffusion de la
chaleur représentent des données en
deux dimensions sous la forme d'une
distribution de probabilité à l'instant t. Avec la fonction imshow Avec la fonction pcolor de la classe
Axes
• Matrice de données aléatoires de taille 10x10,
• interpolation 'nearest’.
• xlabel(), ylabel() et title(),
• et une légende de couleur colorbar().
Pr. Hind Lamharhar 158

158

79
4/25/24

Graphiques avancés
Graphiques d'histogramme
• Les graphiques d'histogramme sont utilisés
pour représenter la distribution de données
en utilisant des colonnes verticales pour
indiquer le nombre de points de données
dans chaque plage de valeurs.
• Voici un exemple de code pour créer un
graphique d'histogramme avec Matplotlib :

Pr. Hind Lamharhar 159

159

Visualisation de données réelles


Importation de données avec Pandas
1. Importation des données : Dans cet exemple, nous allons importer les données des ventes de
produits d'une entreprise. Les données sont stockées dans un fichier CSV. Nous allons utiliser
la bibliothèque Pandas pour importer les données.

Pr. Hind Lamharhar 160

160

80
4/25/24

Visualisation de données réelles


Utilisation de Pandas pour nettoyer et manipuler les données
• Nettoyage et manipulation des données : Une fois que les données ont été importées, nous
pouvons nettoyer et manipuler les données pour les préparer à la visualisation. Dans cet
exemple, nous allons supprimer les lignes avec des valeurs manquantes et convertir les
colonnes contenant des dates en objets datetime.

Pr. Hind Lamharhar 161

161

Visualisation de données réelles


Création de graphiques pour visualiser les données
• Maintenant que les données ont été nettoyées et manipulées, nous pouvons créer des
graphiques pour visualiser les données. Dans cet exemple, nous allons créer un graphique à
barres montrant les ventes par catégorie de produit.

Pr. Hind Lamharhar 162

162

81
4/25/24

Visualisation de données réelles


Interactivité avec des widgets
• Enfin, nous pouvons ajouter de l'interactivité à notre graphique en utilisant des widgets. Dans
cet exemple, nous allons ajouter un widget de bouton pour filtrer les données par mois.

Pr. Hind Lamharhar 163

163

Quizs
1. Question 1: Qu'est-ce que Matplotlib ? • Question 4: Comment ajouter un titre à un graphique
a) Une bibliothèque Python pour la visualisation de données Matplotlib ?
b) Une bibliothèque Python pour le traitement de données a) [Link]()
b) [Link]()
c) Une bibliothèque Python pour la création d'applications
c) [Link]()
web
Réponse : a)
Réponse : a)
2. Question 2: Comment importer la bibliothèque Matplotlib • Question 5: Comment sauvegarder un graphique
en Python ? Matplotlib en tant qu'image ?
a) import numpy as np a) [Link]()
b) import pandas as pd b) [Link]()
c) import [Link] as plt c) [Link]()
Réponse : c) Réponse : b)
3. Question 3: Comment afficher un graphique en barres avec
Matplotlib ?
a) [Link]()
b) [Link]()
c) [Link]()
Réponse : c)
Pr. Hind Lamharhar 164

164

82
4/25/24

Quiz
1. Question 6: Comment créer un graphique en nuage de points 1. Question 9: Comment ajouter une grille à un
avec Matplotlib ? graphique Matplotlib ?
a) [Link]() a) [Link]()
b) [Link]() b) [Link]()
c) [Link]()
c) [Link]()
Réponse : b)
Réponse : a)
2. Question 7: Comment ajouter une légende à un graphique
Matplotlib ? 2. Question 10: Comment afficher plusieurs graphiques
sur une même figure avec Matplotlib ?
a) [Link]()
a) [Link]()
b) [Link]()
b) [Link]()
c) [Link]()
c) [Link]()
Réponse : a)
Réponse : c)
3. Question 8: Comment modifier la couleur d'un graphique
Matplotlib ?
a) [Link]()
b) [Link]()
c) [Link]()
Pr. Hind Lamharhar Réponse : c) 165

165

Partie 5: Python pour la science de


données avec seaborn

166

83
4/25/24

Seaborn
• Seaborn est une bibliothèque de visualisation de données Python basée sur Matplotlib. Elle
fournit une interface de haut niveau pour créer des graphiques statistiques attrayants et
informatifs. Seaborn est principalement utilisé pour la visualisation de données à grande
échelle, ainsi que pour la création de graphiques complexes tels que les graphiques en violon et
les diagrammes de dispersion en nuage de points. Elle dispose également de nombreuses
options de personnalisation pour améliorer l'apparence et la lisibilité des graphiques.

Pr. Hind Lamharhar 167

167

1. Graphiques de distribution 4. Personnalisation des graphiques


a. Histogrammes et densités de probabilité a. Personnalisation des couleurs et des styles
b. Graphiques en nuage de points b. Ajout de légendes et d'étiquettes
c. Boîtes à moustaches et violons c. Réglage des limites des axes
d. Graphiques en arêtes d. Personnalisation des ticks des axes
2. Graphiques de relations 5. Visualisation de données multidimensionnelles
a. Graphiques de dispersion a. Graphiques de facettes
b. Graphiques en hexagones et en nuages de b. Graphiques de matrices de corrélation
points binaires c. Graphiques de paires de variables
c. Graphiques de régression 6. Visualisation de données temporelles
d. Graphiques de corrélation a. Graphiques de séries chronologiques
3. Graphiques catégoriques b. Graphiques de boîtes à moustaches temporelles
a. Graphiques en barres c. Graphiques de comptage temporel
7. Visualisation de données géospatiales
b. Graphiques en boîtes et moustaches
catégoriques a. Graphiques de cartes
c. Graphiques en violons catégoriques b. Graphiques de chaleur
d. Graphiques de comptage c. Graphiques de barres horizontales géospatiales

Pr. Hind Lamharhar 168

168

84
4/25/24

Plan
I. Introduction à Seaborn III. Personnalisation des graphiques avec Seaborn :
1. Présentation de Seaborn et de ses fonctionnalités 1. Personnalisation des axes
2. Installation et configuration de Seaborn
2. Personnalisation des couleurs
3. Prise en main de la documentation de Seaborn
3. Personnalisation des styles
II. Les types de graphiques disponibles dans Seaborn :
4. Ajout de titres et d'étiquettes
1. Graphiques en barres
[Link] de données multivariées avec Seaborn:
2. Graphiques à points
1. Cartes de chaleur
3. Graphiques en nuages de points
2. Nuages de points à plusieurs variables
4. Graphiques en boîte et moustaches
3. Matrices de dispersion
5. Graphiques en courbes
4. Diagrammes en violon
6. Graphiques de violon
V. Utilisation de Seaborn avec Pandas :
7. Graphiques d'histogramme
1. Chargement de données à partir de fichiers CSV
8. Graphiques de densité de noyau
2. Manipulation de données avec Pandas
9. Graphiques de chaleur
3. Création de graphiques à partir de données Pandas

Pr. Hind Lamharhar 169

169

Introduction à Seaborn
Présentation de Seaborn et de ses fonctionnalités
• Seaborn offre une variété de graphiques qui peuvent être utilisés pour visualiser des données
statistiques. Les fonctionnalités principales de Seaborn sont les suivantes :
1. Graphiques de distribution : Ils permettent de visualiser la distribution d'un ensemble de données à
l'aide de différents types de graphiques comme les histogrammes, les graphiques de densité, les
graphiques en nuages de points et les graphiques en boîte et moustaches.
2. Graphiques de catégories : Ils permettent de visualiser des données catégorielles telles que les
barres, les nuages de points catégoriels et les diagrammes de violon.
3. Graphiques de relations : Ils permettent de visualiser les relations entre deux variables, telles que
les graphiques de dispersion et les graphiques de régression.
4. Graphiques de matrice : Ils permettent de visualiser les relations entre plusieurs variables
simultanément, tels que les heatmaps et les matrices de nuages de points.

Pr. Hind Lamharhar 170

170

85
4/25/24

Visualisation de données réelles


Installation et configuration de Seaborn
• Seaborn peut être installé à l'aide de pip, le gestionnaire de packages Python. Pour l'installer, il
suffit d'exécuter la commande suivante :

• Une fois que Seaborn est installé, vous pouvez l'importer dans votre code Python en utilisant la
commande suivante :

• Il est recommandé d'importer Seaborn en tant que sns, car cela est couramment utilisé dans la
documentation et les exemples de code. Vous êtes maintenant prêt à utiliser Seaborn pour
créer des graphiques et des visualisations.

Pr. Hind Lamharhar 171

171

Visualisation de données réelles


Prise en main de la documentation de Seaborn
• La documentation de Seaborn est disponible sur le site officiel :
[Link]
• Elle est organisée en différentes sections, telles que :
• Introduction : une brève présentation de Seaborn et de ses fonctionnalités.
• Tutorials : des tutoriels pour apprendre à utiliser Seaborn.
• API reference : la documentation complète des différentes fonctions et classes disponibles dans
Seaborn.
• Examples : des exemples de code pour illustrer l'utilisation de Seaborn.
• Gallery : une galerie de graphiques réalisés avec Seaborn pour trouver de l'inspiration.
• Pour prendre en main la documentation de Seaborn, il peut être utile de commencer par la
section Tutorials pour se familiariser avec les différentes fonctionnalités de la librairie. Ensuite,
la section API reference permettra de trouver les informations détaillées sur les fonctions et
classes spécifiques de Seaborn. Les exemples et la galerie pourront ensuite être utilisés pour
trouver des idées de graphiques à réaliser.

Pr. Hind Lamharhar 172

172

86
4/25/24

Les types de graphiques


1. Graphiques en barres
2. Graphiques à points
3. Graphiques en nuages de points
4. Graphiques en boîte et moustaches
5. Graphiques en courbes
6. Graphiques de violon
7. Graphiques d'histogramme
8. Graphiques de densité de noyau
9. Graphiques de chaleur

Pr. Hind Lamharhar 173

173

Les types de graphiques


Graphiques en barres

Pr. Hind Lamharhar 174

174

87
4/25/24

Les types de graphiques


Graphiques à points

Pr. Hind Lamharhar 175

175

Les types de graphiques


Graphiques en nuages de points

Pr. Hind Lamharhar 176

176

88
4/25/24

Les types de graphiques


Graphiques en boîte et moustaches

Pr. Hind Lamharhar 177

177

Les types de graphiques


Graphiques en courbes

Pr. Hind Lamharhar 178

178

89
4/25/24

Les types de graphiques


Graphiques de violon

Pr. Hind Lamharhar 179

179

Les types de graphiques


Graphiques d'histogramme

Pr. Hind Lamharhar 180

180

90
4/25/24

Les types de graphiques


Graphiques de densité de noyau

Pr. Hind Lamharhar 181

181

Les types de graphiques


Graphiques de chaleur

Pr. Hind Lamharhar 182

182

91
4/25/24

Les types de graphiques


Personnalisation des axes
• Seaborn offre une grande flexibilité dans la personnalisation des graphiques pour qu'ils correspondent à vos besoins spécifiques.
• Voici quelques-unes des fonctionnalités de personnalisation que vous pouvez utiliser :
• Personnalisation des axes :
• Réglage des limites des axes
• Échelle des axes (linéaire ou logarithmique)
• Ajout d'étiquettes d'axe
• Ajout de grilles d'axe
• Personnalisation des couleurs :
• Choix de palettes de couleurs
• Réglage des couleurs individuelles pour les éléments du graphique
• Utilisation de couleurs en dégradé
• Personnalisation des styles :
• Choix de styles prédéfinis (darkgrid, whitegrid, dark, white, ticks)
• Définition de styles personnalisés
• Ajout de titres et d'étiquettes :
• Ajout de titres de graphique
• Ajout d'étiquettes de légende
• Ajout d'étiquettes de données
• Voici quelques exemples de code pour illustrer ces fonctionnalités :

Pr. Hind Lamharhar 183

183

Les types de graphiques


Personnalisation des axes

Pr. Hind Lamharhar 184

184

92
4/25/24

Les types de graphiques


Personnalisation des couleurs

Pr. Hind Lamharhar 185

185

Les types de graphiques


Personnalisation des styles

Pr. Hind Lamharhar 186

186

93
4/25/24

Les types de graphiques


Ajout de titres et d'étiquettes

Pr. Hind Lamharhar 187

187

Visualisation de données multivariées


• La visualisation de données multivariées avec Seaborn comprend plusieurs types de graphiques pour
explorer des relations complexes entre plusieurs variables :
• Cartes de chaleur : également connues sous le nom de cartes de corrélation, elles représentent les
relations entre deux variables numériques en utilisant des couleurs pour représenter la force de la
corrélation.
• La fonction heatmap() de Seaborn permet de créer des cartes de chaleur.
• Nuages de points à plusieurs variables : ces graphiques permettent de visualiser des relations entre trois
variables en utilisant une représentation en trois dimensions.
• La fonction scatterplot3d() de Seaborn permet de créer des nuages de points à plusieurs variables.
• Matrices de dispersion : les matrices de dispersion permettent de visualiser des relations entre plusieurs
variables en affichant les paires de variables sur un graphique en nuage de points.
• La fonction pairplot() de Seaborn permet de créer des matrices de dispersion.
• Diagrammes en violon : ces graphiques permettent de visualiser la distribution de plusieurs variables
numériques en les empilant les unes sur les autres.
• La fonction violinplot() de Seaborn permet de créer des diagrammes en violon.

Pr. Hind Lamharhar 188

188

94
4/25/24

Utilisation de Seaborn avec Pandas


• Chargement de données à partir de fichiers CSV :

Pr. Hind Lamharhar 189

189

Utilisation de Seaborn avec Pandas


Manipulation de données avec Pandas

Pr. Hind Lamharhar 190

190

95
4/25/24

Utilisation de Seaborn avec Pandas


• Création de graphiques à partir de données Pandas

Pr. Hind Lamharhar 191

191

différence entre Matplotlib et Seaborn


• Matplotlib est une bibliothèque Python pour la création de graphiques statiques, tels que des
graphiques en courbes, des histogrammes et des diagrammes en barres. Il fournit une grande variété de
styles et de formats pour personnaliser les graphiques. Matplotlib est une bibliothèque de base pour la
visualisation de données en Python et offre un contrôle granulaire sur chaque aspect du graphique.
• Seaborn est également une bibliothèque Python de visualisation de données, mais elle est construite
sur Matplotlib et fournit une interface de haut niveau pour créer des graphiques plus esthétiques et
informatifs avec moins de code. Seaborn fournit des fonctionnalités avancées pour les graphiques
statistiques tels que les diagrammes de violon, les cartes de chaleur et les nuages de points à plusieurs
variables. De plus, il fournit des palettes de couleurs attrayantes et des styles de graphiques
préconfigurés pour faciliter la personnalisation des graphiques.
• En résumé, Matplotlib offre un contrôle plus granulaire sur les graphiques, tandis que Seaborn fournit
une interface de haut niveau pour créer des graphiques plus esthétiques et informatifs avec moins de
code.

Pr. Hind Lamharhar 192

192

96
4/25/24

Différence entre Matplotlib et Seaborn


Personnalisation des graphiques
• Matplotlib est très flexible et vous permet de personnaliser chaque détail de votre graphique.
Cependant, cela peut prendre beaucoup de temps pour créer des graphiques très précis.
• D'un autre côté, Seaborn a des styles prédéfinis qui peuvent être appliqués aux graphiques
avec une seule commande, ce qui facilite la personnalisation de l'apparence globale du
graphique.

Pr. Hind Lamharhar 193

193

Différence entre Matplotlib et Seaborn


Visualisation de données complexes
• Matplotlib est très utile pour créer des graphiques simples et basiques, mais il peut être
difficile à utiliser pour visualiser des données complexes, en particulier des données
multivariées.
• D'un autre côté, Seaborn a des outils intégrés pour visualiser facilement des données
complexes, telles que des graphiques de matrices de dispersion et des cartes de chaleur.

Pr. Hind Lamharhar 194

194

97
4/25/24

Différence entre Matplotlib et Seaborn


Traitement de données manquantes
• Matplotlib ne fournit pas d'outils intégrés pour traiter les données manquantes, il est donc
souvent nécessaire de nettoyer les données avant de les visualiser.
• D'un autre côté, Seaborn a des outils intégrés pour traiter les données manquantes, ce qui
facilite la visualisation des données.

Pr. Hind Lamharhar 195

195

Différence entre Matplotlib et Seaborn


Traitement de données manquantes
• L'un des avantages de Seaborn par rapport à • Avec Matplotlib, si nous essayons de tracer un
Matplotlib est sa capacité à gérer les données histogramme de ces notes, nous obtenons une erreur:
manquantes de manière plus efficace. Voici un
exemple illustrant cette différence :
• Supposons que nous avons un ensemble de
données sur les notes d'examen de plusieurs
étudiants, mais que certaines notes sont
manquantes :
Élève Note
Alice 80
Bob 92 • Avec Matplotlib, si nous essayons de tracer un
Cindy histogramme de ces notes, nous obtenons une erreur:
Dave 78
Eva
Frank 65

Pr. Hind Lamharhar 196

196

98
4/25/24

Différence entre Matplotlib et Seaborn


Histogramme
• Voici comment on pourrait le réaliser • voici comment on pourrait réaliser le même
histogramme avec matplotlib : histogramme avec seaborn :

• On peut constater que seaborn produit un histogramme avec des couleurs et une apparence plus
esthétique par défaut. Seaborn utilise également une approche plus orientée "dataset", où il est plus
facile de visualiser des relatsions entre différentes variables d'un jeu de données.
• matplotlib reste un outil très flexible et personnalisable pour la visualisation de données, tandis que
seaborn est plus axé sur la production de graphiques statistiques de haute qualité en utilisant des
techniques avancées telles que les diagrammes en violon, les cartes thermiques, etc.
Pr. Hind Lamharhar 197

197

Différence entre Matplotlib et Seaborn


Histogramme
• Voici comment on pourrait le réaliser • voici comment on pourrait réaliser le même
histogramme avec matplotlib : histogramme avec seaborn :

• On peut constater que seaborn produit un histogramme avec des couleurs et une apparence plus
esthétique par défaut. Seaborn utilise également une approche plus orientée "dataset", où il est plus
facile de visualiser des relatsions entre différentes variables d'un jeu de données.
• matplotlib reste un outil très flexible et personnalisable pour la visualisation de données, tandis que
seaborn est plus axé sur la production de graphiques statistiques de haute qualité en utilisant des
techniques avancées telles que les diagrammes en violon, les cartes thermiques, etc.
Pr. Hind Lamharhar 198

198

99
4/25/24

Différence entre Matplotlib et Seaborn


Les graphiques
• à barres • à barres

• de dispersion • de dispersion

Pr. Hind Lamharhar 199

199

Différence entre Matplotlib et Seaborn


Les graphiques
• Graphique barres • Graphique de dispersion • Graphique de densité

Pr. Hind Lamharhar 200

200

100
4/25/24

Différence entre Matplotlib et Seaborn


Les graphiques
• Les graphiques en boîte et moustaches

Pr. Hind Lamharhar 201

201

101

Vous aimerez peut-être aussi