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 fai...
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fai...
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fai...
Introduction
Pourquoi se limiter `a un langage de statistique ?
• Parce qu’on fait des stats ! Patate !
En fait, on ne fai...
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 ...
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une compar...
Python
C’est quoi ?
Python
C’est quoi ?
• Un langage de programmation simplifi´e.
• Libre et gratuit
• Utilis´e plus par des physiciens, financi...
Python
Ses forces
Python
Ses forces
• Lisible
• indentation obligatoire (pas d’accolade)
• conventions d’´ecriture bien partag´ees
• program...
Python
Ses forces
• Lisible
• indentation obligatoire (pas d’accolade)
• conventions d’´ecriture bien partag´ees
• program...
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 pe...
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...
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une compar...
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)
• Panda...
Python pour les statisticiens
Python et R
• package : rpy2
• lecture ´ecriture de table
• Appeler les fonctions de R
• A l...
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une compar...
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)
...
Roadmap
1 Introduction
2 Pr´esentation de Python
3 Python pour les statisticiens
4 Plein de bonus avec Python
5 Une compar...
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
→ Dissoc...
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissoc...
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissoc...
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissoc...
Une comparaison
Contexte
• Produire une statistique mais potentiellement `a partir de
diff´erents jeux de donn´ees
→ Dissoc...
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 (c...
Une comparaison
En Python
Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extensi...
Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extensi...
Une comparaison
En Python
• Une classe Data, les donn´ees n´ecessaires
• Contient certaines m´ethodes(=fonction) : extensi...
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)...
L’avenir de R s’´ecrit-il en Python ?
Alexis Eidelman
Institut des politiques publiques
FLtauR
Paris – 3 octobre 2013
Prochain SlideShare
Chargement dans…5
×

R versur Python

4 226 vues

Publié le

Publié dans : Technologie
0 commentaire
4 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
4 226
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1 924
Actions
Partages
0
Téléchargements
52
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

R versur Python

  1. 1. L’avenir de R s’´ecrit-il en Python ? Alexis Eidelman Institut des politiques publiques FLtauR Paris – 3 octobre 2013
  2. 2. Introduction Pourquoi se limiter `a un langage de statistique ?
  3. 3. Introduction Pourquoi se limiter `a un langage de statistique ? • Parce qu’on fait des stats ! Patate !
  4. 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. 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. 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. 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. 8. Introduction But de la pr´esentation
  9. 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. 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
  11. 11. Python C’est quoi ?
  12. 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
  13. 13. Python Ses forces
  14. 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. 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.
  16. 16. Python Ses forces
  17. 17. Python Ses forces • Facile `a apprendre
  18. 18. Python Ses forces • Facile `a apprendre • Possibilit´e de rentabiliser son travail • La structure de classes
  19. 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. 20. Python Quelques faiblesses Il faut parfois se battre avec Python...
  21. 21. Python Quelques faiblesses Il faut parfois se battre avec Python...
  22. 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. 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. 24. Python pour les statisticiens Les libraires in´evitable
  25. 25. Python pour les statisticiens Les libraires in´evitable • Numpy : la gestion des tableaux (tr`es rapide et l´eger)
  26. 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. 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. 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. 29. Plein de bonus avec Python Des libraires
  30. 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. 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
  32. 32. Une comparaison Contexte
  33. 33. Une comparaison Contexte • Produire une statistique mais potentiellement `a partir de diff´erents jeux de donn´ees
  34. 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. 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. 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. 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. 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. 39. Une comparaison En R • Un fichier central qui en appelle d’autres
  40. 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
  41. 41. Une comparaison En Python
  42. 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. 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. 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. 45. Python pour les statisticiens - Conclusion Mon ressenti
  46. 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. 47. L’avenir de R s’´ecrit-il en Python ? Alexis Eidelman Institut des politiques publiques FLtauR Paris – 3 octobre 2013

×