Vous êtes sur la page 1sur 30

La Science des données et le

langage Python.

Fabrice Jossinet, UE Initiation à la science des données (ISDD) 2020-21


Vous vivez à l’époque du Big
Data, où l’accumulation des
données numériques est
exponentielle.
Ce phénomène est
principalement dû :
• à la production et diffusion des
données par les individus
connectés Un exabyte représente
36 000 années de
• à la production et diffusion des vidéos HD-TV.
données par les appareils
connectés : IoT (caméras, frigos,
Siri, Alexa,…), sondes spatiales,
séquenceurs de génomes, …
Vous vivez à l’époque du Big
Data, où l’accumulation des
données numériques est
exponentielle.
Ce phénomène est
principalement dû :
• à la production et diffusion des
données par les individus
connectés
• à la production et diffusion des
données par les appareils
connectés : IoT (caméras, frigos,
Siri, Alexa,…), sondes spatiales,
séquenceurs de génomes, …
La récupération des données,
l e u r t ra i t e m e n t ( n e tt o y a g e ,
correction,..) et leur analyse est
devenu un domaine et des
métiers à part entière : la science
Programmation Mathématiques et statistiques
des données.
De nombreuses compétences
sont nécessaires mais on peut
essentiellement en citer 3 (ci-
Domaine
contre). Data Science
d'expertise
Dans un monde où tout le monde
saura bientôt programmer, la
compétence la plus primordiale
est sans doute le domaine
d’expertise.
Le domaine d’expertise est celui
qui guidera vos compétences en
programmation et en statistiques
pour analyser correctement des
données, valider les résultats et Programmation Mathématiques et statistiques
leur donner un sens.
Sans domaine d’expertise, il est
possible de faire dire n’importe
quoi à un ordinateur. Domaine
Data Science
d'expertise
Avec la facilité d’accès aux
données et aux outils, n’importe
qui peut prétendre déduire
n’importe quoi.
Le langage de programmation
est ce qui vous permettra de faire
c o m p r e n d r e à l ’o r d i n a t e u r
l’ensemble des actions et des
instructions à réaliser pour vous.
C’est ce que l’on appelle un
algorithme.
Vous suivez des algorithmes tous
les jours. Par exemple la recette
des crêpes.

On commence par une version


simple…

Extrait du blog "Sweet random Science" (http://goo.gl/1YLZBW)


Le langage de programmation
est ce qui vous permettra de faire
c o m p r e n d r e à l ’o r d i n a t e u r
l’ensemble des actions et des
instructions à réaliser pour vous.
C’est ce que l’on appelle un
algorithme.
Vous suivez des algorithmes tous
les jours. Par exemple la recette
des crêpes.

On commence par une version


simple, puis on rend cela de plus
en plus complexe afin de gérer
le plus de cas possibles.
Extrait du blog "Sweet random Science" (http://goo.gl/1YLZBW)
Il existe un très grand nombre de
langages de programmation.
Plusieurs critères peuvent
i n fl u e n c e r v o t re c h o i x . Pa r
exemple :
• le contexte professionnel (tout
est fait en Java dans cette
entreprise donc ce sera Java)
• certains langages sont plus
adaptés que d’autres à certains
domaines ( jeux 3D, outils
systèmes, sites web,
visualisation des données,…)
Selon le classement TIOBE*,
Python vient de dépasser le
langage Java et est le deuxième
langage le plus utilisé (il a aussi
été élu langage de l’année 2020,
c’est à dire le langage qui a
gagné le plus de popularité en
un an).

*mesure la popularité des langages de


programmation en se basant sur le nombre de pages
web retournées par les principaux moteurs de
recherche
Un critère très important et qui fait
le succès du langage Python est la
capacité à pouvoir écrire en très
peu de code des actions très
puissantes. Ceci est relié
essentiellement à deux aspects :
• la syntaxe et la facilité d’utilisation
du langage (langage interprété)
• l ’e x i s t e n c e d e n o m b re u s e s
librairies
Po u r un langage de
programmation, une librairie est un Pandas
PyTorch

module contenant du code écrit Django


par d’autres et qui permet en Bokeh
quelques lignes de code de faire Tensor
des choses qui nécessiteraient Scikit-
Flow

plusieurs centaines ou milliers de learn

lignes. Dash
NLTK
Ces librairies se trouvent sur
internet. On les télécharge et on les SciPy
rajoute au langage « de base ». Flask

Matplot
Python a un écosystème très riche Numpy
lib
de librairies.
Python est devenu un langage très
utilisé car il est facile à utiliser et il
possède de nombreuses librairies
en rapport avec l’analyse de
données et l’intelligence artificielle
(deux domaines qui recrutent).
Python est devenu un langage très
utilisé car il est facile à utiliser et il
possède de nombreuses librairies
en rapport avec l’analyse de
données et l’intelligence artificielle
(deux domaines qui recrutent).

D’autres sont également très


https://www.r-project.org
populaires :
• le langage R
Python est devenu un langage très
utilisé car il est facile à utiliser et il
possède de nombreuses librairies
en rapport avec l’analyse de
données et l’intelligence artificielle
(deux domaines qui recrutent).

D’autres sont également très


populaires :
https://julialang.org
• le langage R
• le langage Julia (une valeur
montante)
Python est devenu un langage très
utilisé car il est facile à utiliser et il
possède de nombreuses librairies
en rapport avec l’analyse de
données et l’intelligence artificielle
(deux domaines qui recrutent).

D’autres sont également très


populaires :
• le langage R
• le langage Julia (une valeur
montante)
• le langage Javascript avec sa
https://d3js.org
librairie de visualisation d3.js
Une des librairies qui a sans
doute contribué le plus au succès
de Python est Pandas.
Une des librairies qui a sans
doute contribué le plus au succès attributs
de Python est Pandas.
Les données sont le plus souvent
récupérables sous forme de

enregistrements
tableaux (format table).
Une des librairies qui a sans
doute contribué le plus au succès
de Python est Pandas. type; start; end; strand
snoRNA; 100008; 100093; +
Les données sont le plus souvent miRNA; 62143; 62230; +
tRNA; 10336; 10406; -
récupérables sous forme de
tableaux (format table).
On peut facilement placer les
données dans une table à id; typeTwo; name; type
001; Poison; Bulbasaur; Grass
l’intérieur d’un simple fichier 002; Poison; Ivysaur; Grass
003; Poison; Venusaur; Grass
texte en utilisant un caractère de 006; Flying; Charizard; Fire
012; Flying; Butterfree; Bug
séparation (cela donne le format 013; Poison; Weedle; Bug
CSV, pour Comma-Separated 014; Poison;
015; Poison;
Kakuna; Bug
Beedrill; Bug
Values).
id; typeTwo; name; type
001; Poison; Bulbasaur; Grass
La très bonne idée de la librairie 002; Poison; Ivysaur; Grass
003; Poison; Venusaur; Grass
Pandas est de facilement pouvoir 006; Flying; Charizard; Fire
012; Flying; Butterfree; Bug
lire de telles données et de les 013; Poison; Weedle; Bug
pokemon.csv
mettre en mémoire dans une 014; Poison;
015; Poison;
Kakuna; Bug
Beedrill; Bug
structure de donnée appelée une
Dataframe. Il est ensuite possible dataframe = pandas.read_cvs(“pokemon.csv “) 

de faire des actions simples et


extrêmement puissantes sur cette
Dataframe (filtrage, recherche,
classement,…).

! pseudo-code
dataframe.filter(typeTwo = “Flying” )
dataframe.sort(“name”)
dataframe.search(type=“Fire” && typeTwo =“Poison”).sort(“name”)
Une autre caractéristique qui a
contribué au succès du langage
Python est l’existence de l’outil
Jupyter et son amélioration récente
appelée JupyterLab.

https://jupyter.org
Une autre caractéristique qui a
contribué au succès du langage
Python est l’existence de l’outil
Jupyter et son amélioration récente
appelée JupyterLab.
Cet outil fait partie de la famille des
notebooks interactifs. Vous écrivez
du code et vous voyez directement
le résultat. Vous pouvez modifier ce
code a posteriori et voir
i m m é d i a t e m e n t l ’e ff e t d e l a
modification.
Une autre caractéristique qui a
contribué au succès du langage
Python est l’existence de l’outil
Jupyter et son amélioration récente
appelée JupyterLab.
Cet outil fait partie de la famille des
notebooks interactifs. Vous écrivez
du code et vous voyez directement
le résultat. Vous pouvez modifier ce
code a posteriori et voir
i m m é d i a t e m e n t l ’e ff e t d e l a
modification.
Ce sont des outils très prisés pour
prototyper et tester des idées.
https://www.wolfram.com
Ces notebooks peuvent mélanger
du texte simple et du code. On
peut donc réaliser de véritables
cours ou travaux pratiques
interactifs avec ces outils. Il existe
ainsi des sites sur lesquels il est
possible de partager ses
notebooks.

https://nbviewer.jupyter.org
Aujourd’hui, il est possible d’utiliser
l’interface de Jupyter avec plein
d’autres langages que Python.
Pour travailler avec Python sur votre
ordinateur, il vous faudra :
• un environnement Python (tous
les OS en possède un de base
mais vous pouvez en prendre un
pré-configuré avec plein de
librairies)

https://www.anaconda.com/products/individual
Pour travailler avec Python sur votre
ordinateur, il vous faudra : Pandas
PyTorch

• un environnement Python (tous Django

les OS en possède un de base Bokeh

mais vous pouvez en prendre un Tensor


Flow
pré-configuré avec plein de Scikit-
learn
librairies)
Dash
• des librairies NLTK

SciPy
Flask

Matplot
Numpy
lib
Pour travailler avec Python sur votre
ordinateur, il vous faudra :
• un environnement Python (tous
les OS en possède un de base
mais vous pouvez en prendre un
pré-configuré avec plein de
librairies)
• des librairies
• un outil pour écrire du code
python et pouvoir l’executer (cela
va du simple éditeur de texte à
l’environnement intégré de https://jupyter.org
développement en passant par
Jupyter)
Pour travailler avec Python sur votre
ordinateur, il vous faudra :
• un environnement Python (tous
les OS en possède un de base
mais vous pouvez en prendre un
pré-configuré avec plein de
librairies)
• des librairies
• un outil pour écrire du code
python et pouvoir l’executer (cela https://www.jetbrains.com/fr-fr/pycharm/

va du simple éditeur de texte à


l’environnement intégré de
développement en passant par
Jupyter)
Pour travailler avec Python sur votre
ordinateur, il vous faudra :
• un environnement Python (tous
les OS en possède un de base
mais vous pouvez en prendre un
pré-configuré avec plein de
librairies)
• des librairies
• un outil pour écrire du code
python et pouvoir l’executer (cela https://code.visualstudio.com

va du simple éditeur de texte à


l’environnement intégré de
développement en passant par
Jupyter)
Il existe des outils en ligne vous
permettant d’avoir tout cela depuis
un navigateur Web sans rien
installer. Par exemple Google
Colab.
Google Colab est une version
cloud de Jupiter Notebook.

https://colab.research.google.com

Vous aimerez peut-être aussi