• Keine Ergebnisse gefunden

Exemple 1 : Cas où l’on renvoie une valeur unique

1.11. Les modules python

Tout comme les dictionnaires sont des collections d’objets (listes, tuples, set, etc..), les modules sont des collections de fonctions qui permettent de réalisées des tâches apparentées.

Par exemple, le module math, contient un certain nombre de fonctions mathématiques telles que sinus, cosinus, tangente, racine carrée, etc.

88 De nombreux modules sont déjà pré-installés dans la bibliothèque standard de python.

Toutefois, pour réaliser certaines tâches spécifiques, on est souvent amené à installer des modules supplémentaires (ex : numpy, scipy, matplotlib,pandas, etc..)

Dans cette section, nous menons une discussion générale sur comment installer et utiliser un module python. Nous passerons en revue quelques modules incontournables de python en matière de Data Science.

1.11.1. Importation d’un module python

Dans la plupart des cas, avant d’utiliser un module, il faut d’abord importer dans la bibliothèque en utilisant le mot clé import. L’exemple ci-dessous illustre comment importer le module math.

import math

L’instruction import permet de rendre disponible tout le module (c'est-à-dire l’ensemble des fonctions qui le constitue). Pour voir l’ensemble des fonction qui forment un module, on utilise la fonction dir(). Exemple :

dir(math)

Pour avoir l’aide sur une fonction particulière dans le module math on utilise la fonction help().

Exemple :

help(math.gamma) # renvoie l’aide sur la fonction gamma du module math Puisqu’une fonction contient une multitude de fonction, il est souvent inutile d’importer toutes ces fonctions en appelant. Si on a besoin de quelques fonctions seulement, on peut utiliser le mot clé from (voir exemple ci-dessous)

from math import sin # Importe la fonction sinus

from math import cos, sin, tan, pi # Importe respectivement les fonction cosinus, sinus, tangente et la valeur pi (3.14).

from math import * # Importe toutes les fonction associées à math (équivalent à import math)

Remarque : lorsque le nom du module est long, il peut être utile d’importer le module en utilisant un alias avec le mot clé « as » afin de lui attribuer un nom temporaire qui sera utilisé alternativement au nom initial dans le reste du programme. Exemple :

import matplotlib as plt import requests as rqs

89 On peut alors utiliser ces alias partout où on fait appel aux modules correspondant. Nous donnerons des exemples dans la suite de la section. Attention toutefois à bien choisir ces alias afin d’éviter des confusions avec les noms d’autres objets pythons ou les mots réservés.

1.11.2. Utilisation d’un module python

Les exemples ci-dessous montrent quelques utilisations des modules python après leur importation

1.11.2.1. Quelques utilisations de la fonction math

from math import *

v=16 # définit une variable v

x = math.sqrt (v) # Renvoie la racine carrée de v y = math.e(v) # Renvoie l’exponentiel de v

z = math.log(v) # Renvoie le logarithme népérien de v

1.11.2.2. Quelques exemples d’utilisation du module random

Le module random permet de générer des séquences de nombres aléatoires. C’est un module de la bibliothèquee standard de python tout comme le module math. Pour l’importer on fait : import random

Pour avoir un aperçu sur l’ensemble des fonctions associées, on fait dir(random)

Pour importer quelques fonction utiles, on a :

from random import random, randint, seed, uniform, randrange,sample, shuffle # Importe quelques fonctions utiles de random

La fonction random du module random permet de générer un nombre aléatoire compris entre 0 et 1. Exemple :

import random

x=random.random() # Renvoie un nombre aléatoire.

print(x)

La fonction randint() renvoie un nombre aléatoire entier sélectionner dans un intervalle défini par deux bornes a et b. Exemple :

import random

x=random.randint(5,17) # Renvoie un nombre aléatoire entier entre 5 et 17.

print(x)

90 La fonction uniform() est comme la fonction randint() à la différence que la fonction uniform génère un nombre aléatoire (réel) suivant une loi uniforme sur un intervalle donné. Exemple : import random

x=random.uniform(5,17) # Renvoie un nombre aléatoire uniforme réel entre 5 et 17.

print(x)

La particularité des fonctions de génération de nombres aléatoires c’est qu’elles renvoient toujours des nouvelles valeurs lorsqu’elles sont appelées. Alors que dans de nombreuses situations, on voudrait que le programme renvoie les mêmes valeurs afin de reproduire les résultats obtenus lors de l’exécution précédente. Pour cela, il faut fixer le paramètre seed().

Exemple :

for i in range(10) : import random random.seed(2016)

x=random.random() # Renvoie 0.7379.

print(x)

x=random.randint(5,17) # Renvoie 12 print(x)

x=random.uniform(5,17) # Renvoie 16.78 print(x)

Dans ce code, on a appliqué dix fois les fonction random(), randint() et uniform(). Mais puisque le seed est fixé à la même valeur (2016) alors les fonctions vont tirer les mêmes valeurs. D’où l’importance de l’utilisation de la fonction seed(). Pour annuler l’effet du seed et réinitialiser on utiliser la commande :

random.seed() # réinitialise le seed() à la valeur du système.

La fonction shuffle permute aléatoirement les éléments d’une liste. Exemple import random

x = [1, 2, 3, 4] # Soit une liste initialement définie comme suit : random.shuffle(x) # Effectue une première permutation aléatoire des élements

print(x)

random.shuffle(x) # Effectue une seconde permutation des éléments print(x)

NB : On pouvait aussi utiliser la fonction seed() afin de pouvoir reproduire les mêmes résultats après chaque permutation.

91 N’oublier pas également les fonctions randrange() et sample() qui permettent respectivement des tirages aléatoires (la première dans un intervalle avec un pas donné et la seconde un tirage aléatoire d’échantillon suivant le plan SI.

1.11.3. Définir et utiliser son propre module

On peut créer son propre module en rassemblant plusieurs fonctions dans un seul script et en l’enregistrant dans le répertoire courant avec l’extension .py. Le nom doit être un nom simple ne créant pas d’ambiguïté avec d’autres objets python. On peut choisir par exemple : myprogram.py

Une fois que le programme est enregistré dans le répertoire courant, il suffit d’importer le module comme un module classique et toutes ses fonctions (et variables) deviennent toute accessibles.

La première fois qu’un module est importé, Python crée un fichier avec une extension .pyc (ici myprogram.pyc) qui contient le bytecode (code précompilé) du module. L’appel du module se fait avec la commande:

import myprogram

Ensuite on peut utiliser les fonctions du module comme avec un module classique.

1.11.4. Procédure d’installation et d’utilisation des modules externes

Comme nous l’avons signalé un peu plus haut, de nombreux modules de python sont des modules externes qui doivent d’abord être installés afin de pouvoir effectuer certaines tâches.

C’est le cas par exemples des modules de calcul scientifiques et numériques (scipy, numpy), les modules d’élaboration de graphiques (malplotlib) ou encore des modules e traiement de données, d’analyses statistiques ou de data science (pandas, Statmodels, scikit-learn, etcc).

Dans cette section, nous décrivons les étapes d’installations des modules externes ainsi que quelques astuces utiles pour une installation rapide.

En effet, pour installer un module externe python, il faut suivre les suivantes suivantes (Attention, cette méthode n’a été testée que sur python 3.4 installé sur un système Windows 7, 32bit)

1- Chercher le module sur Internet le module à télécharger et télécharger le fichier en extention whl (ou un dossier contenant les fichiers (dézipper si nécessaire). De nombreux fichier en whl peuvent être trouvés à l’adresse http://www.lfd.uci.edu/~gohlke/pythonlibs/

92 Télécharger le fichier et déposer le dans le dossier: "C:\Python34\Scripts" qui est le répertoire où est installé python 3.4

2- Lancer une page dans un éditeur de texte (Bloc-Note, Nordpad, Notepad, etcc). Enregistrer cette page quelque part, de préférence dans le répertoire "C:\Python34\Scripts" avec le nom avec l’extention .bat comme suit : "fichier_installation_modules.bat". Ce fichier étant créé, on va ajouter quelques lignes de commande qui installent automatiquement les modules qui seront indiqués. Pour ouvrir le fichier, faite clique-droit --> modifier. Le fichier avec l’extension .bat est un fichier exécutable. En faisant ouvrir, le programme s’exécute.

3-Après avoir ouvert le fichier (en mode modifier), ajouter les lignes de commande suivantes correspondant aux modules à installer:

4- Après avoir ajouté ces lignes de commande, on enregistre et on ferme le fichier. Ensuite, on clique-droit--> Exécuter ou Ouvrir ou double-cliquer. L’instruction pip install se lance alors et installe tous les modules les uns à la suite des autres. Il faut noter qu’on peut aussi installer les modules dans l’invite commande de windows.

Nb : Tous ces modules indiqués ici doivent être préalablement téléchargés et déposés dans le répertoire C:\Python34\Scripts. Le nombre de modules externes à installer dépend des besoins

93 de l’utilisateur. D’une manière générale l’installation de nouveaux modules se fait au fur et à mesure que les besoins de l’utilisateur augmentent. Cette longue liste de module n’est donc pas le fruit le fruit d’une installation d’un seul jour.

Conseil technique : Attention, pour un débutant, il est conseillé de ne pas avoir une version trop avancé de python sinon, vous risquez de ne pas pouvoir avoir tous les modules téléchargeables compatibles avec votre version. Il faut donc trouver un équilibre entre le fait d’être à jour dans les versions python et la compatibilité des fonctions que vous serez amenés à utiliser. Vous pouvez consulter par exemple le site http://www.lfd.uci.edu/~gohlke/pythonlibs/

pour analyser les modules disponibles pour quelles versions de python

Dans la liste des modules spécifiées ci-dessus, on remarque deux catégories : les fichiers avec l’extention whl et les fichiers sans extension. Les fichiers avec l’extention whl ont pour la plupart dans leur nom les mots « win32 » ou « py2.py3-none-any ». cp34-none-win32 signifie que le module est compatible avec la version 3.4 avec un système windows 32 bit. py2.py3-none-any signifie que le module est compatible avec python 2.x et 3.x et installable sur n’importe quel système.

Quant aux fichiers sans extensions, c’étaient au départ des fichiers sources (src) archives avec l’extension tar.gz que nous avons extrait et déposer comme un dossier dans le répertoire Scripts. Le module s’installe alors comme pour un fichier en whl. Notons toutefois que le nom des versions ne doit pas être spécifié par dans le programme d’installation. Par exemple si le dossier est nommé mca-1.0, on écrira simplement pip install mca.

Il faut aussi signaler qu’il existe une autre méthode d’installation plus simple des modules sous windows. Cela se fait à partir de l’invite commande de windows et le programme easy_install.exe présent dans le dossier Scripts. Par exemple, pour installer le module numpy, on tape la commande :

C:\Python34\Scripts\easy_install.exe numpy

Python fait lui-même la recherche du fichier d’installation (y compris sur internet) et installe le module.

Pour connaitre la version d’un module installé, on utilise la propriété __version__. Exemple : pour connaître la version de matplotlin, on fait comme suit :

Import matplotlib matplotlib.__version__

1.11.5. Désinstaller un module

Pour désinstaller un package, on utilise la commande uninstall à la place install avec pip (sans les numéros des versions). Exemple : Pour désinstaller numpy, on fait :

94 pip uninstall numpy