SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
L’avenir de R s’´ecrit-il en Python ?
Alexis Eidelman
Institut des politiques publiques
FLtauR
Paris – 3 octobre 2013
Introduction
Pourquoi se limiter `a un langage de statistique ?
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
• Parce qu’on est pas des programmeurs ! Banane !
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
• Parce qu’on est pas des programmeurs ! Banane !
→ Python et pas C ou Fortran qui sont plus hard
→ On fait plus de programmation qu’on pense, autant le
faire dans un langage pr´evu pour ¸ca.
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la
manipulation de donn´ees, des op´erations ´el´ementaires, la
vraie partie stat est parfois (souvent) tr`es faible...
• Parce qu’on est pas des programmeurs ! Banane !
→ Python et pas C ou Fortran qui sont plus hard
→ On fait plus de programmation qu’on pense, autant le
faire dans un langage pr´evu pour ¸ca.
• Finalement, n’est-ce pas un biais culturel qui nous pousse
ver R ?
Introduction
But de la pr´esentation
Introduction
But de la pr´esentation
• Une saine critique : R ne doit pas ˆetre compar´e qu’`a SAS
• Pr´esenter Python et ses atouts
• Parler de l’interface R et Python
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
Python
C’est quoi ?
Python
C’est quoi ?
• Un langage de programmation simplifi´e.
• Libre et gratuit
• Utilis´e plus par des physiciens, financiers que des biologistes
• Et utilis´e pour g´en´erer des interfaces graphiques et des
applications
Python
Ses forces
Python
Ses forces
• Lisible
• indentation obligatoire (pas d’accolade)
• conventions d’´ecriture bien partag´ees
• programmes courts
• noms explicites
• pas de d´eclaration de type
Python
Ses forces
• Lisible
• indentation obligatoire (pas d’accolade)
• conventions d’´ecriture bien partag´ees
• programmes courts
• noms explicites
• pas de d´eclaration de type
• Rapide
• Ne calcule que ce dont il a besoin (permet de renommer `a
loisir)
• Spontan´ement rapide (aucune comparaison entre une
boucle R et une boucle Python)
• Rapide `a ´ecrire.
Python
Ses forces
Python
Ses forces
• Facile `a apprendre
Python
Ses forces
• Facile `a apprendre
• Possibilit´e de rentabiliser son travail
• La structure de classes
Python
Ses forces
• Facile `a apprendre
• Possibilit´e de rentabiliser son travail
• La structure de classes
• Plein de petites choses
• assert
• travail simple sur les chaines de caract`eres
• bons ´editeurs
• bonnes documentations ( + stackoverflow)
Python
Quelques faiblesses
Il faut parfois se battre avec Python...
Python
Quelques faiblesses
Il faut parfois se battre avec Python...
Python
Quelques faiblesses
• Visualisation des tables
• Plusieurs ´editeurs (a priori bons mais c’est plus simple
quand on n’a pas de choix, n’est-ce pas ?)
• Num´erote `a partir de z´ero
• Deux versions 2.7 et 3.3
• Doit convaincre, comme R `a ses d´ebuts
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
Python pour les statisticiens
Les libraires in´evitable
Python pour les statisticiens
Les libraires in´evitable
• Numpy : la gestion des tableaux (tr`es rapide et l´eger)
Python pour les statisticiens
Les libraires in´evitable
• Numpy : la gestion des tableaux (tr`es rapide et l´eger)
• Pandas
• Index
• Subset
• Pas de probl`eme avec les valeurs manquantes
• Vecteur, DataFrame, TimeSeries
• et progresse
Python pour les statisticiens
Python et R
• package : rpy2
• lecture ´ecriture de table
• Appeler les fonctions de R
• A l’inverse possibilit´e de lancer Python depuis R.
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
Plein de bonus avec Python
Des libraires
Plein de bonus avec Python
Des libraires
• Big Data
• Interface avec office (dont excel) : pywin32
• Utiliser Latex (Pytex)
• Webscrapping : scrapy
• Cartographie ?
• Ecrire en c, c++
• Interface avec YAML
• Documentation automatique (Sphinx)
• Analyse du temps de calcul (RunSnake)
Et ¸ca ´evolue sans cesse !
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une comparaison pratique : travail sur l’enquˆete patrimoine
2010
Une comparaison
Contexte
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
Concr`etement :
• Enquˆete patrimoine 2010
• Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
Concr`etement :
• Enquˆete patrimoine 2010
• Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes
• Data cleaning
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissocier ce dont on a besoin et ce qu’on a
→ Pr´evoir des imputations pour compl´eter les bases de
donn´ees
Concr`etement :
• Enquˆete patrimoine 2010
• Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes
• Data cleaning
• Imputation de d´eclarations fiscales, d’´etat de sant´e, etc.
• Fermeture de l’´echantillon (associer `a chaque enfants de la
base des parents fictifs dans la base).
Une comparaison
En R
• Un fichier central qui en appelle d’autres
Une comparaison
En R
• Un fichier central qui en appelle d’autres
• Des lapply(as.integer)
• une boucle sur 15 variables (cydeb1-cydeb15) prend
beaucoup de temps
• Taille de la base de donn´ees limitante (pour un probl`eme
quadratique)
• Gal`eres innommables pour la duplication des m´enages et la
gestions de identifiants (pour ne pas faire de groupby)
• Des load et des save un peu partout pour ne pas tout refaire
`a z´ero `a chaque modif mais avec les diff´erentes options c’est
pas g´enial
Une comparaison
En Python
Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extension de la
base, maitrise des formats de donn´ees,
Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extension de la
base, maitrise des formats de donn´ees,
• Une sous-classe Patrimoine, l’ann´ee d’enquˆete est un
param`etre pour l’instant
• Contient la lecture, les corrections, le recodage de variables,
les imputations, etc.
Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extension de la
base, maitrise des formats de donn´ees,
• Une sous-classe Patrimoine, l’ann´ee d’enquˆete est un
param`etre pour l’instant
• Contient la lecture, les corrections, le recodage de variables,
les imputations, etc.
• Pas de probl`eme m´emoire, ni de groupby bien g´er´es par
pandas.
• Des v´erifications (assert) dans le programme bien rassurant
• Beaucoup plus rapide qu’en R (environ 1min30 contre
7min30)
Python pour les statisticiens - Conclusion
Mon ressenti
Python pour les statisticiens - Conclusion
Mon ressenti
• Pas plus compliqu´e que R du tout (peut-ˆetre mˆeme plus
simple)
• Moins de librairies orient´ee stat qu’en R
• Plus performant que R.
• Lecture des programmes beaucoup plus facile, mˆeme quand
ils sont complexes
Si je dois d´ebuter un projet aujourd’hui, je pr´ef`ere le
commencer en Python plutˆot qu’en R.
L’avenir de R s’´ecrit-il en Python ?
Alexis Eidelman
Institut des politiques publiques
FLtauR
Paris – 3 octobre 2013

Contenu connexe

Similaire à R versur Python

Implantation d’un nouveau système de gestion de bibliothèque à l’ULg
Implantation d’un nouveau système de gestion de bibliothèque à l’ULg Implantation d’un nouveau système de gestion de bibliothèque à l’ULg
Implantation d’un nouveau système de gestion de bibliothèque à l’ULg
François Renaville
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
LuneSabsPericolo1
 

Similaire à R versur Python (20)

GetText / Rails
GetText / RailsGetText / Rails
GetText / Rails
 
Décryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data scienceDécryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data science
 
La "Data science" au service des entreprises
La "Data science" au service des entreprisesLa "Data science" au service des entreprises
La "Data science" au service des entreprises
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011
 
Utc data publica1
Utc data publica1Utc data publica1
Utc data publica1
 
Diginova - Session sur le machine learning avec ML.NET
Diginova - Session sur le machine learning avec ML.NETDiginova - Session sur le machine learning avec ML.NET
Diginova - Session sur le machine learning avec ML.NET
 
Implantation d’un nouveau système de gestion de bibliothèque à l’ULg
Implantation d’un nouveau système de gestion de bibliothèque à l’ULg Implantation d’un nouveau système de gestion de bibliothèque à l’ULg
Implantation d’un nouveau système de gestion de bibliothèque à l’ULg
 
Business intelligence pour startups
Business intelligence pour startupsBusiness intelligence pour startups
Business intelligence pour startups
 
1-Intro to DB.pptx
1-Intro to DB.pptx1-Intro to DB.pptx
1-Intro to DB.pptx
 
Programming language python 2021
Programming language python 2021Programming language python 2021
Programming language python 2021
 
Créer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresCréer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libres
 
Introduction à la Data Science l data business
Introduction à la Data Science l data businessIntroduction à la Data Science l data business
Introduction à la Data Science l data business
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Une Introduction à R
Une Introduction à RUne Introduction à R
Une Introduction à R
 
Python
PythonPython
Python
 
Les chatbots, l’IA dans tout cela, les technologies
Les chatbots, l’IA dans tout cela, les technologiesLes chatbots, l’IA dans tout cela, les technologies
Les chatbots, l’IA dans tout cela, les technologies
 
Base de données
Base de donnéesBase de données
Base de données
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
 
Boostez votre recherche SharePoint grâce aux Microsoft Cognitive Services!
Boostez votre recherche SharePoint grâce aux Microsoft Cognitive Services!Boostez votre recherche SharePoint grâce aux Microsoft Cognitive Services!
Boostez votre recherche SharePoint grâce aux Microsoft Cognitive Services!
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
 

R versur Python

  • 1. L’avenir de R s’´ecrit-il en Python ? Alexis Eidelman Institut des politiques publiques FLtauR Paris – 3 octobre 2013
  • 2. Introduction Pourquoi se limiter `a un langage de statistique ?
  • 3. Introduction Pourquoi se limiter `a un langage de statistique ? • Parce qu’on fait des stats ! Patate !
  • 4. Introduction Pourquoi se limiter `a un langage de statistique ? • Parce qu’on fait des stats ! Patate ! En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la manipulation de donn´ees, des op´erations ´el´ementaires, la vraie partie stat est parfois (souvent) tr`es faible...
  • 5. Introduction Pourquoi se limiter `a un langage de statistique ? • Parce qu’on fait des stats ! Patate ! En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la manipulation de donn´ees, des op´erations ´el´ementaires, la vraie partie stat est parfois (souvent) tr`es faible... • Parce qu’on est pas des programmeurs ! Banane !
  • 6. Introduction Pourquoi se limiter `a un langage de statistique ? • Parce qu’on fait des stats ! Patate ! En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la manipulation de donn´ees, des op´erations ´el´ementaires, la vraie partie stat est parfois (souvent) tr`es faible... • Parce qu’on est pas des programmeurs ! Banane ! → Python et pas C ou Fortran qui sont plus hard → On fait plus de programmation qu’on pense, autant le faire dans un langage pr´evu pour ¸ca.
  • 7. Introduction Pourquoi se limiter `a un langage de statistique ? • Parce qu’on fait des stats ! Patate ! En fait, on ne fait pas que ¸ca → On fait des requˆetes, de la manipulation de donn´ees, des op´erations ´el´ementaires, la vraie partie stat est parfois (souvent) tr`es faible... • Parce qu’on est pas des programmeurs ! Banane ! → Python et pas C ou Fortran qui sont plus hard → On fait plus de programmation qu’on pense, autant le faire dans un langage pr´evu pour ¸ca. • Finalement, n’est-ce pas un biais culturel qui nous pousse ver R ?
  • 8. Introduction But de la pr´esentation
  • 9. Introduction But de la pr´esentation • Une saine critique : R ne doit pas ˆetre compar´e qu’`a SAS • Pr´esenter Python et ses atouts • Parler de l’interface R et Python
  • 10. Roadmap 1 Introduction 2 Pr´esentation de Python 3 Python pour les statisticiens 4 Plein de bonus avec Python 5 Une comparaison pratique : travail sur l’enquˆete patrimoine 2010
  • 12. Python C’est quoi ? • Un langage de programmation simplifi´e. • Libre et gratuit • Utilis´e plus par des physiciens, financiers que des biologistes • Et utilis´e pour g´en´erer des interfaces graphiques et des applications
  • 14. Python Ses forces • Lisible • indentation obligatoire (pas d’accolade) • conventions d’´ecriture bien partag´ees • programmes courts • noms explicites • pas de d´eclaration de type
  • 15. Python Ses forces • Lisible • indentation obligatoire (pas d’accolade) • conventions d’´ecriture bien partag´ees • programmes courts • noms explicites • pas de d´eclaration de type • Rapide • Ne calcule que ce dont il a besoin (permet de renommer `a loisir) • Spontan´ement rapide (aucune comparaison entre une boucle R et une boucle Python) • Rapide `a ´ecrire.
  • 18. Python Ses forces • Facile `a apprendre • Possibilit´e de rentabiliser son travail • La structure de classes
  • 19. Python Ses forces • Facile `a apprendre • Possibilit´e de rentabiliser son travail • La structure de classes • Plein de petites choses • assert • travail simple sur les chaines de caract`eres • bons ´editeurs • bonnes documentations ( + stackoverflow)
  • 20. Python Quelques faiblesses Il faut parfois se battre avec Python...
  • 21. Python Quelques faiblesses Il faut parfois se battre avec Python...
  • 22. Python Quelques faiblesses • Visualisation des tables • Plusieurs ´editeurs (a priori bons mais c’est plus simple quand on n’a pas de choix, n’est-ce pas ?) • Num´erote `a partir de z´ero • Deux versions 2.7 et 3.3 • Doit convaincre, comme R `a ses d´ebuts
  • 23. Roadmap 1 Introduction 2 Pr´esentation de Python 3 Python pour les statisticiens 4 Plein de bonus avec Python 5 Une comparaison pratique : travail sur l’enquˆete patrimoine 2010
  • 24. Python pour les statisticiens Les libraires in´evitable
  • 25. Python pour les statisticiens Les libraires in´evitable • Numpy : la gestion des tableaux (tr`es rapide et l´eger)
  • 26. Python pour les statisticiens Les libraires in´evitable • Numpy : la gestion des tableaux (tr`es rapide et l´eger) • Pandas • Index • Subset • Pas de probl`eme avec les valeurs manquantes • Vecteur, DataFrame, TimeSeries • et progresse
  • 27. Python pour les statisticiens Python et R • package : rpy2 • lecture ´ecriture de table • Appeler les fonctions de R • A l’inverse possibilit´e de lancer Python depuis R.
  • 28. Roadmap 1 Introduction 2 Pr´esentation de Python 3 Python pour les statisticiens 4 Plein de bonus avec Python 5 Une comparaison pratique : travail sur l’enquˆete patrimoine 2010
  • 29. Plein de bonus avec Python Des libraires
  • 30. Plein de bonus avec Python Des libraires • Big Data • Interface avec office (dont excel) : pywin32 • Utiliser Latex (Pytex) • Webscrapping : scrapy • Cartographie ? • Ecrire en c, c++ • Interface avec YAML • Documentation automatique (Sphinx) • Analyse du temps de calcul (RunSnake) Et ¸ca ´evolue sans cesse !
  • 31. Roadmap 1 Introduction 2 Pr´esentation de Python 3 Python pour les statisticiens 4 Plein de bonus avec Python 5 Une comparaison pratique : travail sur l’enquˆete patrimoine 2010
  • 33. Une comparaison Contexte • Produire une statistique mais potentiellement `a partir de diff´erents jeux de donn´ees
  • 34. Une comparaison Contexte • Produire une statistique mais potentiellement `a partir de diff´erents jeux de donn´ees → Dissocier ce dont on a besoin et ce qu’on a
  • 35. Une comparaison Contexte • Produire une statistique mais potentiellement `a partir de diff´erents jeux de donn´ees → Dissocier ce dont on a besoin et ce qu’on a → Pr´evoir des imputations pour compl´eter les bases de donn´ees
  • 36. Une comparaison Contexte • Produire une statistique mais potentiellement `a partir de diff´erents jeux de donn´ees → Dissocier ce dont on a besoin et ce qu’on a → Pr´evoir des imputations pour compl´eter les bases de donn´ees Concr`etement : • Enquˆete patrimoine 2010 • Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes
  • 37. Une comparaison Contexte • Produire une statistique mais potentiellement `a partir de diff´erents jeux de donn´ees → Dissocier ce dont on a besoin et ce qu’on a → Pr´evoir des imputations pour compl´eter les bases de donn´ees Concr`etement : • Enquˆete patrimoine 2010 • Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes • Data cleaning
  • 38. Une comparaison Contexte • Produire une statistique mais potentiellement `a partir de diff´erents jeux de donn´ees → Dissocier ce dont on a besoin et ce qu’on a → Pr´evoir des imputations pour compl´eter les bases de donn´ees Concr`etement : • Enquˆete patrimoine 2010 • Base ´etendue (dupliqu´ee) `a plus de 11 millions de lignes • Data cleaning • Imputation de d´eclarations fiscales, d’´etat de sant´e, etc. • Fermeture de l’´echantillon (associer `a chaque enfants de la base des parents fictifs dans la base).
  • 39. Une comparaison En R • Un fichier central qui en appelle d’autres
  • 40. Une comparaison En R • Un fichier central qui en appelle d’autres • Des lapply(as.integer) • une boucle sur 15 variables (cydeb1-cydeb15) prend beaucoup de temps • Taille de la base de donn´ees limitante (pour un probl`eme quadratique) • Gal`eres innommables pour la duplication des m´enages et la gestions de identifiants (pour ne pas faire de groupby) • Des load et des save un peu partout pour ne pas tout refaire `a z´ero `a chaque modif mais avec les diff´erentes options c’est pas g´enial
  • 42. Une comparaison En Python • Une classe Data, les donn´ees n´ecessaires • Contient certaines m´ethodes(=fonction) : extension de la base, maitrise des formats de donn´ees,
  • 43. Une comparaison En Python • Une classe Data, les donn´ees n´ecessaires • Contient certaines m´ethodes(=fonction) : extension de la base, maitrise des formats de donn´ees, • Une sous-classe Patrimoine, l’ann´ee d’enquˆete est un param`etre pour l’instant • Contient la lecture, les corrections, le recodage de variables, les imputations, etc.
  • 44. Une comparaison En Python • Une classe Data, les donn´ees n´ecessaires • Contient certaines m´ethodes(=fonction) : extension de la base, maitrise des formats de donn´ees, • Une sous-classe Patrimoine, l’ann´ee d’enquˆete est un param`etre pour l’instant • Contient la lecture, les corrections, le recodage de variables, les imputations, etc. • Pas de probl`eme m´emoire, ni de groupby bien g´er´es par pandas. • Des v´erifications (assert) dans le programme bien rassurant • Beaucoup plus rapide qu’en R (environ 1min30 contre 7min30)
  • 45. Python pour les statisticiens - Conclusion Mon ressenti
  • 46. Python pour les statisticiens - Conclusion Mon ressenti • Pas plus compliqu´e que R du tout (peut-ˆetre mˆeme plus simple) • Moins de librairies orient´ee stat qu’en R • Plus performant que R. • Lecture des programmes beaucoup plus facile, mˆeme quand ils sont complexes Si je dois d´ebuter un projet aujourd’hui, je pr´ef`ere le commencer en Python plutˆot qu’en R.
  • 47. L’avenir de R s’´ecrit-il en Python ? Alexis Eidelman Institut des politiques publiques FLtauR Paris – 3 octobre 2013