Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1 :
Les bases de python pour data science
1.5. MODULES............................................................................................................................................................... 39
Page 1
Intelligence Artificielle 2020-2021
x=1
print(x)
Maintenant une variable varie d'où son nom donc on peut changer à n'importe quel
moment dans notre programme la valeur de x. On peut dire que maintenant x est
égal à 2 puis on va réimprimer x
x=1
print(x)
x=2
print(x)
maintenant une réaffectation qui pourrait être plus intéressante est de simplement
écrire
x=1
print(x)
x=2
print(x)
x=x+1
print(x)
Page 2
Intelligence Artificielle 2020-2021
x=1
print(x)
x=2
print(x)
x += 1
print(x)
tout ça c'est bien mais c'est pas avec une seule variable qu'on va réussir à faire
grand-chose donc nous allons créer une deuxième variable disons y égale 2,5 et a
maintenant nous allons pouvoir faire des calculs.
Opérateurs de base
En plus d'attribuer une valeur initiale à une variable, nous pouvons également
effectuer les opérations mathématiques habituelles sur les variables. Les opérateurs
de base en Python incluent +, -,*, /, //,% et ** qui représentent respectivement
l'addition, la soustraction, la multiplication, la division, la division de plancher, le
module et l'exposant.
Exemple:
Supposons que x = 5, y = 2
Addition: x + y = 7
Soustraction: x - y = 3
Multiplication: x * y = 10
Division: x / y = 2,5
Division du sol: x // y = 2 (arrondit la réponse au nombre entier le plus proche)
Module: x% y = 1 (donne le reste lorsque 5 est divisé par 2)
Exposant: x ** y = 25 (5 à la puissance 2)
Si nous voulons voir si deux variables sont identiques, nous utilisons le signe ==
(double =). Par exemple, si vous écrivez x == y, vous demandez au programme de
vérifier si la valeur de x est égale à la valeur de y. S'ils sont égaux, la condition est
remplie et l'instruction sera évaluée à True. Sinon, l'instruction sera évaluée à False.
x=1
y = 2.5
# Arithmétique
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x ** y)
# Comparaison
print(x <= y)
print(x >= y)
print(x == y)
print(x != y)
Nous avons également trois opérateurs logiques, et (and), ou (or), non (not) qui sont
utiles si nous voulons combiner plusieurs conditions.
L'opérateur and renvoie True si toutes les conditions sont remplies. Sinon, il
retournera False.
Par exemple, l'instruction 5 == 5 and 2 > 1 renverra True puisque les deux
conditions sont True.
voici les différentes opérations de logique pour respectivement faire l'opération and
or et le ou exclusifs
# Logique
print(False & True) # AND
print(False | True) # OR
print(False ^ True) # XOR
Affichage :
False
True
True
existe d'autres types de variables tels que les types numérique et le type string ça
ce sont des variables qui nous permettent de stocker des chaînes de caractères et
Page 5
Intelligence Artificielle 2020-2021
pour ça on crée ces variables en mettant la chaîne de caractères soit entre guillemets
soit entre apostrophe par exemple une chaîne de caractères guillaume
et bien sûr ces variables on peut également les imprimés à l'écran en utilisant print
et maintenant j'exécute mon code et voilà on a dans l'explorateur une variable
prénom de type string qui s'affiche et dans notre console on a la valeur guillaume 0
qui s’affiche
il nous arrive de vouloir créer deux variables sur la même ligne simultanément ou
alors d'affecter deux valeurs à deux variables de façon simultanée pour ça on écrit
tout simplement les deux variables sur la même ligne x, y = 1, 4
Maintenant qu'on a dit tout ce qu'ils avaient à dire sur les variables on va passer aux
fonctions. dans python quand on veut créer une fonction du type par exemple ( x )=x 2 ,
on utilise l'expression lambda
f = lambda x : x**2
print(f(3))
print(f(4))
print(f(5))
Affichage :
9
16
25
par exemple on peut écrire f(3) et imprimer les résultats et alors on va obtenir neuf.
on peut l'utiliser autant de fois qu'on veut. bien entendu on peut écrire une fonction
mathématique aussi complexes qu'on désire.
f = lambda x, y : x**2 + y
print(f(3, 5))
Affichage :
14
Page 6
Intelligence Artificielle 2020-2021
pour créer des fonctions en général on n'utilise pas lambda parce que lambda ça nous
permet simplement de créer une fonction de type mathématiques exactement.
si j'exécute mon code alors on se rend compte que bonjour est affiché à l'écran ce qui
veut dire que cette ligne a été exécuté.
n'ont pas été exécutés parce que ces lignes sont simplement la définition de notre
fonction. On n'a pas encore utilisé notre fonction on l'a seulement défini.
si on veut utiliser notre fonction, il faut l'appeler et ensuite lui passer des valeurs
(des parametres effectifs masse, hauteur et g).
e_potentielle(80, 5, 9.81)
maintenant si j'exécute mon code et bien j'obtiens bonjour puis j'obtiens 3924.
On peut écrire plusieurs choses dans print à condition qu'on sépare les différents
éléments d'une virgule.
Affichage :
3924.0 Joules
masse
Affichage :
NameError: name 'masse' is not defined
vous devez comprendre les parametres formels comme étant simplement des prête
noms qui nous permettent de faire passer des valeurs ou des variables à l'intérieur de
notre fonction. Il en est de meme de la variable E. Ce sont des variables locales.
Affichage :
3924.0 Joules
Affichage :
3924.0 Joules
Page 8
Intelligence Artificielle 2020-2021
Le paramettre formel g étant une constante, on peut le créer comme valeur par
défaut à l’interieur de la fonction comme suit.
Resultat = e_potentielle(80, 5)
print(Resultat, 'Joules')
Affichage :
3924.0 Joules
EXERCICE
Reprendre cette fonction énergie potentielle et d'y ajouter un quatrième argument
qui serait par exemple un argument energie_limite, de modifier un petit peu
l'intérieur de cette fonction afin de retourner VRAI si l'énergie calculé est inférieure
à l'énergie limite qui est passé en arguments et FAUX si non.
Page 9
Intelligence Artificielle 2020-2021
1.2. Structure de contrôle
Dans le paragraphe précédant, nous avons vue les variables et les fonctions. Tout cela ne
suffit pas encore pour créer des algorithmes. Dans ce paragraphe nous allons voir les trois
structures de contrôle les plus populaires du monde de la programmation :
SI … ALORS … SINON … FINSI
POUR … FAIRE …FINPOUR
TANTQUE … FAIRE …FINTANTQUE
Illustration :
x=1
if x > 0 :
print(x, 'positif')
Affichage :
1 positif
x = -1
Page 10
Intelligence Artificielle 2020-2021
if x > 0 :
print(x, 'positif')
x = -1
if x > 0 :
print(x, 'positif')
else :
print(x, 'negatif')
Affichage :
-1 negatif
x=0
if x > 0 :
print(x, 'positif')
elif x == 0 :
print(x, 'nul')
else :
print(x, 'negatif')
Affichage :
Page 11
Intelligence Artificielle 2020-2021
0 nul
x > 0 et x == 0 sont ce qu’on appelle des expressions booleennes. Car si on suppose que x
= 0 alors elles vallent respectivement FAUX (false) et VRAI (true).
x=1
x>0
Affichage :
True
x == 0
Affichage :
False
On peut donc introduire des opérateurs booleens tels que ET, OU, NON
x=1
y=2
if (x > 0) & (y > x) :
print(x, y, 'positif')
elif x == 0 :
Page 12
Intelligence Artificielle 2020-2021
print(x, 'nul')
else :
print(x, 'negatif')
Affichage :
1 2 positif
Nous allons maintenant crréer une FONCTION qui va intégrer tout ce qu’on vient de
voir.
def signe(x) :
if (x > 0) :
print(x, 'positif')
elif x == 0 :
print(x, 'nul')
else :
print(x, 'negatif')
signe(5)
Affichage :
5 positif
signe(0)
Affichage :
0 nul
for i in range(10) :
print('bonjour')
Affichage :
bonjour
bonjour
bonjour
bonjour
bonjour
bonjour
bonjour
bonjour
bonjour
bonjour
Page 13
Intelligence Artificielle 2020-2021
Autre exemple :
for i in range(10) :
print(i)
Affichage :
0
1
2
3
4
5
6
7
8
9
Autre exemple :
Affichage :
5
6
7
8
9
Affichage :
5
7
9
Affichage :
10
9
8
7
6
5
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
Affichage :
10 positif
9 positif
8 positif
7 positif
6 positif
5 positif
4 positif
3 positif
2 positif
1 positif
0 nul
-1 negatif
-2 negatif
-3 negatif
-4 negatif
-5 negatif
Page 15
Intelligence Artificielle 2020-2021
-6 negatif
-7 negatif
-8 negatif
-9 negatif
Affichage :
10 positif
7 positif
4 positif
1 positif
-2 negatif
-5 negatif
-8 negatif
x=0
while x < 10 :
print(x)
x += 1
Affichage :
0
1
2
3
4
5
6
7
8
9
Page 16
Intelligence Artificielle 2020-2021
def e_potentielle_limite(masse, hauteur, limite, g = 9.81) :
E = masse * hauteur * g
return E < limite
Affichage :
True
EXERCICE
Ecrire une fonction la suite de fibonacci
Page 17
Intelligence Artificielle 2020-2021
1.3. Structure de donnée Liste et Tuple
Jusqu’à present les variables que nous avons manipulées ne contiennent qu’une seule
valeur à la fois. Dans cette section, nous allons parler des structures de données qui
peuvent contenir plusieurs valeurs à la fois.
liste_1
Affichage :
[1, 4, 2, 7, 35, 84]
villes
Affichage :
['Paris', 'Berlin', 'Londre', 'Bruxelles']
liste_2
Affichage :
[[1, 4, 2, 7, 35, 84], ['Paris', 'Berlin', 'Londre', 'Bruxelles']]
liste_3
Affichage :
[]
Page 18
Intelligence Artificielle 2020-2021
tuple_1
Affichage :
(1, 4, 2, 7, 35, 84)
prenom = 'Nicolas'
prenom
Affichage :
'Nicolas'
Les listes, les tuples et les strings sont tous les trois des structures de données qui forment
des séquences. Une séquence est une structure de données qui suit ORDRE. Dans une
séquence les valeurs sont indexées. Grace à ce système d’indexe, on peut acceder à chaque
élément de la séquence.
Affichage :
Paris
Page 19
Intelligence Artificielle 2020-2021
Affichage :
Berlin
Affichage :
Bruxelles
Affichage :
Londre
print(villes[0:3])
Affichage :
['Paris', 'Berlin', 'Londre']
Page 20
Intelligence Artificielle 2020-2021
print(villes[:3])
Affichage :
['Paris', 'Berlin', 'Londre']
print(villes[2:])
Affichage :
['Londre', 'Bruxelles']
print(villes[1:3])
Affichage :
['Berlin', 'Londre']
print(villes[::2])
Affichage :
['Paris', 'Londre']
print(villes[::-1])
Affichage :
['Bruxelles', 'Londre', 'Berlin', 'Paris']
Page 21
Intelligence Artificielle 2020-2021
Saisissez : villes. Puis appuyer sur la touche tabulation. La liste des différentes méthodes
apparait. Ce sont les différentes actions que nous pouvons réaliser sur cette liste.
Commencons par l’action append permettant d’ajouter un élément à la fin de la liste.
villes.append('Dublin')
villes
Affichage :
['Paris', 'Berlin', 'Londre', 'Bruxelles', 'Dublin']
Parfois on a envie d’ajouter un élément à la liste, mais pas à la fin. Pour cela on utilise la
méthode insert.
villes.insert(2, 'Madrid')
villes
Affichage :
['Paris', 'Berlin', 'Madrid', 'Londre', 'Bruxelles', 'Dublin']
Page 22
Intelligence Artificielle 2020-2021
Si on veut ajouter une liste à la fin d’une liste, alors on utilise la méthode extend.
Affichage :
['Paris',
'Berlin',
'Madrid',
'Londre',
'Bruxelles',
'Dublin',
'Amsterdam',
'Rome']
Maintenant on a pas mal d’éléments dans notre liste. On n’a pas envie de les compter. On
utilise pour cela la méthode len.
len(villes)
Affichage :
8
Maintenant ce qu’on peut faire de très important sur les listes c’est le tri. Pour cela on
utilise la méthode sort.
villes.sort()
villes
Affichage :
['Amsterdam',
'Berlin',
'Bruxelles',
'Dublin',
'Londre',
'Madrid',
'Paris',
Page 23
Intelligence Artificielle 2020-2021
'Rome']
villes.sort(reverse = True)
villes
Affichage :
['Rome',
'Paris',
'Madrid',
'Londre',
'Dublin',
'Bruxelles',
'Berlin',
'Amsterdam']
Affichage :
[2, 3, 23, 24, 51, 52, 61, 78]
if 'Paris' in villes :
print('Oui')
else :
print('Non')
Affichage :
Oui
Page 24
Intelligence Artificielle 2020-2021
if 'Belfast' in villes :
print('Oui')
else :
print('Non')
Affichage :
Non
for i in villes :
print(i)
Affichage :
Rome
Paris
Madrid
Londre
Dublin
Bruxelles
Berlin
Amsterdam
Page 25
Intelligence Artificielle 2020-2021
Affichage :
0 Rome
1 Paris
2 Madrid
3 Londre
4 Dublin
5 Bruxelles
6 Berlin
7 Amsterdam
Affichage :
Rome 10
Paris 20
Madrid 30
Londre 40
Page 26
Intelligence Artificielle 2020-2021
1.3.7. Les dictionnaires
Le dictionnaire est une structure de donnée qui n’est pas ordonnée. A la plce des index, ils
ont ce qu’on appelle des clé.
traduction = {
"chien" : "dog",
"chat" : "cat",
"souris" : "mouse",
"oiseau" : "bird"
}
traduction
Affichage :
{'chien': 'dog', 'chat': 'cat', 'souris': 'mouse', 'oiseau': 'bird'}
inventaire = {
"bananes" : 5000,
"pommes" : 2094,
"poires" : 412809
}
inventaire
Affichage :
{'bananes': 5000, 'pommes': 2094, 'poires': 412809}
dictionnaire_3 = {
"dict_1" : traduction,
" dict_2" : inventaire,
}
dictionnaire_3
Page 27
Intelligence Artificielle 2020-2021
Affichage :
{
'dict_1': {'chien': 'dog', 'chat': 'cat', 'souris': 'mouse', 'oiseau': 'bird'},
'dict_2': {'bananes': 5000, 'pommes': 2094, 'poires': 412809}
}
Certains developpeur utilisent les dictionnaires pour stocker les parametres de leurs
réseaux de neurones.
import numpy as np
parametres = {
"W1" : np.random.randn(10, 100),
"b1" : np.random.randn(10, 1),
"W2" : np.random.randn(10, 10),
"b2" : np.random.randn(10, 1)
}
parametres
Affichage :
{'W1': array([[-0.29296497, -1.23179249, 0.96555974, 0.23892485, -0.43666369],
[ 0.21962975, -1.24535934, 0.1186961 , -0.62560256, 0.47972845],
[-0.962823 , 0.16769856, 1.02074075, 1.29811239, -0.13233589],
[ 0.61388966, 1.49110421, -1.06916032, -2.17395663, -2.14957359],
[-0.16697841, -0.35815909, -0.02627559, 0.70212555, -0.81205697],
[-0.15858304, -0.20331961, 0.77373126, 0.10435334, 0.79791264],
[-0.49117606, -0.09399364, -1.30556228, 1.01282227, 1.48703755],
[-0.68955066, -1.39178894, 1.39661323, 1.52258544, 1.06531198],
[ 1.00285583, 1.39707159, 1.08020902, 0.3051774 , 0.53615398],
[ 2.67639704, 0.89956046, -0.60535741, 0.6564401 , -0.13610098]]),
'b1': array([[-1.56675747],
[-1.34588719],
[ 0.10984012],
[-0.7316115 ],
[-0.4903927 ],
[ 1.25854733],
[-1.80314722],
[-0.10097639],
[-2.04065917],
[-0.34794164]]),
'W2': array([[ 0.84661047, -1.14610015, 0.14559382, 0.12156519, 1.0341293 ],
[-1.71077658, -0.12799756, -0.49782403, -1.82171235, 1.96090075],
[-1.36787297, -0.93369914, 0.84908575, 0.27493435, 1.50721343],
[ 2.24777913, -1.19377328, -1.27719467, 0.96614847, 1.4032403 ],
[-0.90168933, 0.49509232, -1.16480164, 0.31313356, -0.49582453],
[ 2.37258087, -1.00458706, -0.39741044, -0.92039934, 0.40198067],
[-0.06315536, -0.39865967, -0.39301307, -0.50526146, 0.24169101],
[ 0.72069994, -0.05700464, 0.5925811 , -0.10701013, 1.03254448],
[ 1.76737731, 0.85470206, -0.14853319, -0.45400093, -1.69504521],
[ 1.08746455, 0.25990343, 0.26431439, 0.69433954, -0.98224949]]),
'b2': array([[-0.43810317],
[ 2.08451425],
[ 0.86419883],
[-1.67671645],
[ 1.62174103],
Page 28
Intelligence Artificielle 2020-2021
[ 1.9035228 ],
[ 0.05148822],
[ 0.37283925],
[-1.0359044 ],
[ 1.41473245]])}
inventaire.values()
Affichage :
dict_values([5000, 2094, 412809])
inventaire.keys()
Affichage :
dict_keys(['bananes', 'pommes', 'poires'])
len(inventaire)
Affichage :
3
inventaire["Abricot"] = 4902
inventaire
Affichage :
{'bananes': 5000, 'pommes': 2094, 'poires': 412809, 'Abricot': 4902}
Page 29
Intelligence Artificielle 2020-2021
Les méthodes pour les dictionnaires
print(inventaire.get("Peche"))
Affichage :
None
print(inventaire.get("Peche", 1))
Affichage :
1
print(inventaire.get("pommes"))
Affichage :
2094
Affichage :
{'Paris': 'defaut', 'londre': 'defaut', 'Bruxelles': 'defaut'}
Page 30
Intelligence Artificielle 2020-2021
inventaire
Affichage :
{'bananes': 5000, 'pommes': 2094, 'poires': 412809, 'Abricot': 4902}
inventaire.pop('Abricot')
Affichage :
4902
inventaire
Affichage :
{'bananes': 5000, 'pommes': 2094, 'poires': 412809}
for i in inventaire :
print(i)
Affichage :
bananes
pommes
poires
for i in inventaire.values() :
print(i)
Affichage :
5000
2094
412809
for k, v in inventaire.items() :
print(k, v)
Affichage :
bananes 5000
pommes 2094
poires 412809
Page 32
Intelligence Artificielle 2020-2021
Correction EXERCICE
def fibonacci(n) :
# retourne une liste contenant la suite de fibonacci jusqu’à n
a=0
b=1
fib = [a]
while b < n :
a, b = b, a+b
fib.append(a)
return fib
print(fibonacci(1000))
Affichage :
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
EXERCICE
Page 33
Intelligence Artificielle 2020-2021
1.3.8. Listes et dictionnaires en comprehension
Dans les sections précedentes, on a vu les listes et les dictionnaires ainsi que tout un tas
de techniques à utiliser sur ces différentes structures de données.
Maintenant il y a encore une technique très importante que l'on n'a pas encore vu sur listes
les dictionnaires. C’est la technique des listes en comprhenssion et les dictionnaires en
comprhenssion.
1. listes en comprhenssion
Imaginez que vous ayez une liste complètement vide et que vous vouliez écrire tous les
nombres carrés de 0 à 9 à l'intérieur de cette liste pour ça vous pourriez avoir l'algorithme
suivant.
liste_1 = []
for i in range(10) :
liste_1.append(i**2)
print(liste_1)
Affichage :
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Une liste comprehenssion consiste à inserer la boucle for à l’intérieur de la boucle elle-
même.
Affichage :
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
import time
import time
start = time.time()
liste_1 = []
for i in range(10) :
liste_1.append(i**2)
Page 34
Intelligence Artificielle 2020-2021
print(liste_1)
end = time.time()
print(end - start)
Affichage :
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
0.0010025501251220703
import time
start = time.time()
liste_2 = [i**2 for i in range(10)]
print(liste_2)
end = time.time()
print(end - start)
Affichage :
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
0.0008230209350585938
Affichage :
[0, 1, 2]
Affichage :
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2. dictionnaires en comprhenssion
dictionnaire = {
'0' : 'pierre',
'1' : 'jean',
'2' : 'julie',
'3' : 'sophie'
}
dictionnaire
Page 35
Intelligence Artificielle 2020-2021
Affichage :
{'0': 'pierre', '1': 'jean', '2': 'julie', '3': 'sophie'}
Affichage :
{'0': 'pierre', '1': 'jean', '2': 'julie', '3': 'sophie'}
Affichage :
{'pierre': 23, 'jean': 14, 'julie': 36, 'sophie': 63}
dico_2 = { prenom : age for prenom, age in zip(prenoms, ages) if age > 30}
print(dico_2)
Affichage :
{'julie': 36, 'sophie': 63}
En resumé
L’interet :
Un code plus professionnel, plus court et plus facile à exécuter
Page 36
Intelligence Artificielle 2020-2021
Correction EXERCICE
EXERCICE
Créer un dictionnaire comprehension
Clé : nombres allant de 0 à 20
Valleur : la clé au carré
Page 37
Intelligence Artificielle 2020-2021
1.4. Les fontions prédefinies
La fonction abs()
x = -3
abs(x)
Affichage :
3
La fonction round()
x = 3.14
round(x)
Affichage :
3
Page 38
Intelligence Artificielle 2020-2021
La fonction any()
1.5. Modules
Page 39