➢ Chapitre 2: Introduction à Python
Introduction à
Python pour le ➢ Présenté par :
➢ Amal Naadi
Datamining ➢ Soulaimane Ighissy
➢ Hamza Bouhamane
Introduction à Python
Python est aujourd’hui l’un des langages les plus utilisés dans la Data
Science, le Data Mining et l’Intelligence Artificielle. Sa popularité vient de
sa syntaxe simple, sa lisibilité et sa grande flexibilité. Contrairement à
d’autres langages plus complexes, Python permet d’écrire des
programmes clairs et compréhensibles, accessibles même aux débutants.
De plus, l’écosystème Python offre des bibliothèques puissantes pour le
calcul numérique, la manipulation de données, la visualisation et le
Machine Learning. Python est open source, gratuit, adopté par des
entreprises internationales et largement utilisé en recherche
académique.
Installation et configuration de python, découverte d’environnement Jupyter
Pour travailler en Data Mining, installez Python depuis [Link] ou préférez une
distribution comme Anaconda qui inclut déjà les bibliothèques scientifiques principales
(Pandas, NumPy, Scikit-learn, etc.).
L’environnement le plus utilisé en Data Science est Jupyter Notebook, il s’agit d’un outil
interactif permettant d’écrire du code, d’exécuter cellule par cellule et d’afficher
immédiatement les résultats.
Jupyter combine code, texte explicatif et visualisations dans un même document, et
facilitant l’expérimentation, l’analyse exploratoire et la communication des découvertes.
Installation et configuration de python, découverte d’environnement Jupyter
1 2
Installation Anaconda (Python + Bibliothèques)
3 4
Jupyter Notebook (Écrire et exécuter le code) Analyse et Visualisation des données
Pour travailler en Data Mining avec Python, nous devons d'abord installer un environnement adapté.
La solution recommandée est Anaconda, car elle contient Python ainsi que les principales bibliothèques scientifiques
nécessaires comme Pandas, NumPy, Scikit learn...
Ensuite, nous utilisons Jupyter Notebook, qui est un environnement interactif permettant d'écrire du code, de l'exécuter
et de visualiser immédiatement les résultats.
Cet outil facilite l'analyse exploratoire des données et la réalisation de projets en Data Science.
Type de données fondamentaux : int, Float, string, bool
Python repose sur plusieurs types de données fondamentaux :
❑ int Opérations sur les nombres entiers
En Python, les nombres de type int disposent
Nombres entiers d’opérateurs arithmétiques qui facilitent les
calculs sur les valeurs entières.
Le type int (integer, en anglais) correspond aux valeurs ✓ Addition : +
numériques entières (positives ou négatives) et sert ✓ Soustraction : -
principalement aux calculs sans virgule. ✓ Multiplication : *
✓ Division entière : //
✓ Modulo (reste de la division
Exemple: entière) : %
✓ Puissance : **
0 , 1 , 100 , -1000 , -2 ✓ Division classique (résultat float ):
/
Type de données fondamentaux : int, Float, string, bool
❑ float
Opérations sur les nombres à virgule
Nombres flottants ou Nombres à virgule
En Python, les nombres de type float disposent
d’opérations arithmétiques qui facilitent les
Le type float (float, en anglais) représente des nombres calculs sur les valeurs décimales.
flottants qui sont des nombres décimaux (à virgule), écrits
avec un point « . » . ✓ Addition : +
✓ Soustraction : -
✓ Multiplication : *
✓ Division : /
Exemple: ✓ Division entière : //
✓ Puissance : **
0.2 , 10.0 , -10. , -.2 , 5e2
Type de données fondamentaux : int, Float, string, bool
La compréhension de ces types est essentielle pour éviter les erreurs lors du traitement des données.
Remarque 1 Remarque 2
En Python , les nombres de type int ou float suivent un Sur les nombres de type int ou float , on peut aussi
ordre de priorité des opérations, comme en utiliser les opérateurs de comparaison : == (égal à), !=
mathématiques, où les multiplications et divisions sont (différent de), < (plus petit que), <= (inférieur ou égal), >
effectuées avant les additions et soustractions. (plus grand que), >= (supérieur ou égal). Ces opérateurs
de comparaison comparent deux expressions et
[] , () , ** , * , / , // , % , + , - renvoient un booléen (True ou False).
Entre crochets, Entre parenthèses, puissance,
multiplication, divion, division entière, modulo, ✓ 4 != 7 donne True (car 4 est différent de 7 ).
addition, soustraction. ✓ 4.0 < 7.0 donne True (car 4.0 est plus petit que de 7.0).
Type de données fondamentaux : int, Float, string, bool
❑ Chaines de caractères (String)
Chaînes de caractères Opérations sur les chaînes de caractères
Le type str (string, en anglais) désigne une chaîne de
➢ concaténation : +
caractères, c’est-à-dire du texte entre guillemets ou
quote. ″Bonne″ + ″ journée″ donne Bonne journée
➢ répétition : *
Exemple: ″bonne ″*2 donne bonne bonne
"bonne" , ‘bonne’
Type de données fondamentaux : int, Float, string, bool
Sur les chaînes de caractères ( str ), on peut aussi utiliser les opérateurs d'appartenance : in et not in . Ces
opérateurs d'appartenance vérifient si une sous-chaîne est présente dans une autre. Exemple:
✓ ‘a' in ‘zakaria' donne True
✓ ‘o' not in ‘zakaria' donne True
Sur les chaînes de caractères ( str ), on peut aussi utiliser les opérateurs de comparaison lexicographique : ==
, < , > . Ces opérateurs de comparaison comparent deux expressions et renvoient un booléen ( True ou False ).
Exemple:
✓ ‘réel’ < ‘réelle’ donne True
✓ ‘bonne’ == ‘bonne’ donne True
Dans Python , les majuscules sont différentes des minuscules : toutes les lettres majuscules précèdent les
lettres minuscules. Exemple:
✓ ‘Réel’ > ‘réelle’ donne True
✓ ‘bonne’ == ‘BONNE’ donne False
Type de données fondamentaux : int, Float, string, bool
❑ Bool :
Opérations sur les booléens
Booléens Voici les principales opérations disponibles sur le
type bool en Python, appelées aussi opérateurs
logiques :
Le type bool (boolean, en anglais) permet de
• or (OU logique)
représenter une valeur logique, soit True (vrai) soit
• and (ET logique)
False (faux), souvent utilisée dans les conditions.
• not (NON logique)
Exemple:
• True or False donne True .
• True and False donne False .
• not True donne False
Type de données fondamentaux : int, Float, string, bool
En Python, on peut utiliser la fonction intégrée type() pour connaître le type d’une valeur. Exemple:
✓ print(type(10)) affiche <class 'int'> .
✓ print(type(6e3)) affiche <class ‘float’>
✓ print(type(“10")) affiche <class 'str'> .
✓ print(type(True)) affiche <class 'bool'> .
En Python, on peut utiliser les fonctions intégrées int() , float() , str() , bool() pour convertir une valeur d'un
type vers un autre. Attention, certaines conversions ne sont pas possibles. Exemple:
✓ print(int(5.5)) affiche 5
✓ print(float(10)) affiche 10.0
✓ print(str(True)) afficher True
✓ print(bool(0)) affiche False
✓ print(bool(1)) affiche True
Structures de données essentielles: listes, dictionnaires,
tuples, sets
En plus des types simples, Python propose des structures de données plus complexes permettant d'organiser
l'information.
Structure de donnée Liste (list)
Une liste est une structure de données ordonnée, muable (modifiable) et indexée qui permet de stocker un groupe
d'éléments dans une seule variable Une liste en Python est définie par des crochets []. Elle permet de stocker
une collection hétérogène d'éléments (entiers, chaînes, autres listes) sous une seule variable. Son rôle est de faciliter
le stockage, l'accès, la modification et l'organisation séquentielle de données.
Exemples:
liste_1 = [1, 2, 3]
liste_2 = [ 5 , ‘agadir’ , 12.5 ]
Les opérations de la Structure liste :
notes = [10, 14, 9, 11, 15]
print(type(notes)) ➔ <class 'list'>
print(len(notes)) #Affiche 5 longueur de la liste
print(notes[2]) #Afficher élément à l'indice 2 (9)
notes[0] = 12 #Remplacer élément 10 par 12 à l'indice 0 ➔ [12, 14, 9, 11, 15]
compte = [Link](10) #Renvoi combien de 10 à la liste ➔ 0
[Link](8) # ajouter 8 à la fin de la liste ➔ [12, 14, 9, 11, 15, 8]
[Link](1, 13) #Ajouter 13 à l'indice 1 ➔ [12, 13, 14, 9, 11, 15, 8]
[Link]() #Trie la liste ➔ [8, 9, 11, 12, 13, 14, 15]
[Link]() #Inverse l'ordre de la liste ➔ [15, 14, 13, 12, 11, 9, 8]
[Link](15) #Supprime le premier 15 dans la liste ➔ [14, 13, 12, 11, 9, 8]
[Link](0) #Supprime élément à l'indice 0 ➔ [13, 12, 11, 9, 8]
[Link]() #Supprime le dernier élément ➔ [13, 12, 11, 9]
print(11 in notes) #Vérification de la présence d'un élément ➔ True
[Link]() #Supprime tous les éléments dans la liste ➔ [ ]
Structures de données essentielles: listes, dictionnaires,
tuples, sets
Structure de donnée Dictionnaire (dic)
Un dictionnaire est une collection non ordonnée d’éléments, organisés en paires clé-valeur. le dictionnaire
est muable (ou mutable en anglais), c'est-à-dire que ses éléments peuvent être ajoutés, modifiés ou
supprimés après sa création. Chaque clé est unique et de type immuable, et permet d’accéder
directement à la valeur qui lui est associée. Dans le langage Python, les dictionnaires sont implémentés
par le type prédéfini dict . Les dictionnaires sont également appelés tableaux associatifs dans d'autres
langages.
Un dictionnaire est défini par extension en énumérant, entre accolades plusieurs associations clé-valeur
séparées par des virgules. Chaque paire est composée d’une clé et de sa valeur associée, séparées par le
symbole : . Clés Une association
Exemples: personne = {‘nom’ : ‘Ahmed’ , ‘age’ : 25 , ‘ville’ : ‘Agadir’}
Valeurs
Les opérations de la Structure dictionnaire :
personne = {'nom' : 'Ali' , 'age' : 25 , 'ville' : 'Agadir’}
print(type(personne)) ➔ <class 'dict'>
print(personne["age"]) #Accéder à une valeur. ➔ 25
personne["age"] = 23 #Modifier la valeur de clé. ➔ {'nom': 'Ali', 'age': 23, 'ville': 'Agadir’}
print("ville" in personne) #Vérification la présence ville dans le dictionnaire. ➔ True
personne["pays"] = "Maroc" #Ajouter d'une paire clé-valeur.
➔ {'nom': 'Ali', 'age': 23, 'ville': 'Agadir', 'pays': 'Maroc’}
clés = list([Link]()) #Renvoie une liste des clés du dictionnaire.
➔['nom', 'age', 'ville', 'pays']
Valeurs = list([Link]()) #Renvoie une liste des valeurs du dictionnaire.
➔ ['Ali', 23, 'Agadir', 'Maroc']
paires = list([Link]()) #Renvoie une liste des paires clé-valeur du dictionnaire.
➔ [('nom', 'Ali'), ('age', 23), ('ville', 'Agadir'), ('pays', 'Maroc')]
Les opérations de la Structure dictionnaire :
obtenir = [Link]("ville") #Renvoie la valeur associée à une clé. ➔ Agadir
[Link]({"profession": "étudiant"}) #Ajouter une nouvelle association.
➔ {'nom': 'Ali', 'age': 23, 'ville': 'Agadir', 'pays': 'Maroc', 'profession': 'étudiant’}
[Link]("ville") #Supprime et renvoie la valeur associée à une clés.
➔ {'nom': 'Ali', 'age': 23, 'pays': 'Maroc', 'profession': 'étudiant'}
[Link]() #Supprime et renvoie la dernière paire clé-valeur ajoutée.
➔ {'nom': 'Ali', 'age': 23, 'pays': 'Maroc'}
del personne["age"] #Supprime la valeur associée à une clés.
➔ {'nom': 'Ali', 'pays': 'Maroc'}
[Link]() #Supprime toutes les associations.
➔{}
Structures de données essentielles: listes, dictionnaires,
tuples, sets
Structure de donnée Tuples
Un p-uplet (ou tuple en anglais) est une collection ordonnée d’éléments, appelés composantes
ou termes. Le p-uplet est immuable ou encore non muable (ou immutable ou encore non
mutable en anglais) c’est-à-dire ces éléments sont non modifiables par affectation et ne peut
pas ajouter ou supprimer les éléments. Un tuple avec deux éléments est un couple, avec trois
éléments un triplet, un 4 éléments est quadruplet.
élément
Exemples:
date = (27, ‘Mars’ , 2026) date = 12,
0 1 2
indice
Les opérations de la Structure Tuple :
date_1 = (27,"Mars",2026)
date_2 = 12,
x = date_1.count("Mars") #Renvoie le nombre d'éléments qui correspondent à la valeur
➔ 1
indice = date_1.index(2026) #Renvoie l'indice du premier élément qui correspond à une valeur
➔2
print(date_1 + date_2) # Concaténation de deux tuples
➔ (27, 'Mars', 2026, 12)
print(date_1 *2) # Répétition de premier tuple
➔ (27, 'Mars', 2026, 27, 'Mars', 2026)
Structures de données essentielles: listes, dictionnaires,
tuples, sets
Structure de donnée "Sets"
Un set en python est une collection non ordonnée et non indexée d’éléments uniques.
Les sets sont délimités par des accolades { } et les éléments sont séparés par les virgules,
ils sont utilisés pour stocker des données qui doivent être uniques et pour effectuer des
opérations de théorie des ensembles (l’union, l’intersection, la différence).
Exemples:
set = {11,"ali",False}
set1 = {1,2,3,4}
Les opérations de la Structure sets :
set = {11,"ali",False}
set1 = {1,2,3,4}
set2 = {3,4,5,6}
print([Link](set2)) #Renvoi l'union de deux sets ➔ {1, 2, 3, 4, 5, 6}
print([Link](set2)) #Renvoi l'intersection de deux sets ➔ {3, 4}
print([Link](set2)) #Renvoi la différence de deux sets ➔ {1, 2}
print(set1.symmetric_difference(set2)) #Renvoi la différence symétrique de deux sets
➔ {1, 2, 5, 6}
print([Link]({1,2,3})) #Vérifier si un set est un sous-ensemble d'un autre ➔ False
print([Link]({1,2,3})) #Vérifier si un set est un sur-ensemble d'un autre ➔ True
[Link](9) #Ajoute un élément à un set ➔ {1, 2, 3, 4, 9}
[Link](3) #Supprime un élément d'un set ➔ {1, 2, 4, 9}
[Link](2) #Supprime un élément d'un set s'il existe (pas d'erreur si le n'existe pas)
➔ {1, 4, 9}
Boucles, conditions et compréhension des listes
Dans un programme Python, il est souvent nécessaire de prendre des décisions ou répéter certaines opérations plusieurs
opérations plusieurs fois. Pour cela, Python utilise principalement les structures conditionnelles et les boucles.
boucles.
Les structures conditionnelles ( if, if-else, if-elif-else)
Les conditions permettent au programme de prendre une décision selon une situation donnée. En Python, la structure la
la structure la plus utilisée est l'instruction if. Elle permet d'exécuter un bloc de code uniquement si une condition est
condition est vraie.
age = 20
if age >= 18:
print("La personne est majeure")
else:
print("La personne est mineure")
Dans cet exemple, le programme vérifie si l'âge est supérieur ou égal à 18. Si la condition est vraie, il affiche que la
affiche que la personne est majeure, sinon il affiche qu'elle est mineure.
Les conditions sont très utilisées en analyse de données, notamment pour filtrer ou classer des observations selon
observations selon certains critères.
Boucles, conditions et compréhension des listes
Les boucles
Les boucles permettent de répéter automatiquement une opération plusieurs fois. En Python, les deux
boucles les plus utilisées sont for et while.
La boucle for La boucle while
La boucle for est utilisée lorsque le nombre de La boucle while répète une action tant qu'une condition est
vraie.
répétitions est connu.
Exemple :
Exemple : i=0
for i in range(5): while i < 5:
print(i) print(i)
➔01234 i += 1 #équivalent à i = i + 1
➔01234
Dans cet exemple, la boucle affiche les nombres de 0 à 4. La boucle continue jusqu'à ce que la condition i < 5 devienne
La boucle for est très utilisée en Data Science pour fausse.
parcourir des listes, des tableaux ou des ensembles de Les boucles while sont utiles lorsque le nombre de
répétitions n'est pas connu à l'avance.
données.
Boucles, conditions et compréhension des listes
La compréhension de liste (List Comprehension)
La compréhension de liste (ou list comprehension en anglais) est une fonctionnalité de python qui permet de
créer des listes de manière concise expressive.
C’est une façon de créer une nouvelle liste en appliquant une opération à chaque élément d’une liste existant, ou
en filtrant les éléments d’une liste existant.
La syntaxe générale:
[expression for variable in liste if condition]
Exemple:
nombres = [1,2,3,4,5]
doubles = [x*2 for x in nombres] #doubler les éléments ➔ [2, 4, 6, 8, 10]
pairs = [x for x in nombres if x%2==0] #filtrer les nombres pairs d'une liste ➔ [2, 4]
impairs = [x for x in nombres if x%2!=0] #filtrer les nombres impairs d'une liste ➔ [1, 3, 5]
carrés = [x**2 for x in nombres] #créer une liste de carrés ➔ [1, 4, 9, 16, 25]
Boucles, conditions et compréhension des listes
La compréhension de liste (List Comprehension)
La list comprehension est une fonctionnalité très pratique de Python qui permet de créer des listes de manière
plus concise et plus rapide.
Exemple:
nombres = [x for x in range(10)]
Print(x)
➔ x=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Ce code crée une liste contenant les nombres de 0 à 9.
On peut également appliquer une condition :
nombres_pairs = [x for x in range(10) if x % 2 == 0]
print(x)
➔ X=[0, 2, 4, 6, 8]
Cette instruction crée une liste contenant uniquement les nombres pairs.
La list comprehension est très utilisée en analyse de données, car elle permet de manipuler rapidement de
grandes quantités d'informations.