Introduction

Cette introduction présente l’objectif du cours,les partis-pris pédagogiques, le fil conducteur de cet enseignement ainsi que les modalités pratiques de celui-ci.
Auteur·rice

Lino Galiana

Date de publication

2024-11-13

1 Introduction

Important

Ce cours rassemble l’ensemble du contenu du cours Python pour la data science que je donne à l’ENSAE depuis 2018. Ce cours était auparavant donné par Xavier Dupré. Environ 170 élèves qui suivent ce cours chaque année. L’année 2024 a permis l’arrivée progressive d’une version anglophone équivalente à la version française visant à servir de cours d’introduction à la data science pour les instituts statistiques européens grâce à un appel à projets européen.

Ce site (pythonds.linogaliana.fr/) est le point d’entrée principal du cours. Il centralise l’ensemble des contenus faits en cours dans le cadre de travaux pratiques ou proposés en complément à des fins de formation en continue. Ce cours est open source et j’accueille avec plaisir les suggestions d’amélioration sur Github ou par le biais des commentaires en bas de chaque page. Python étant un langage vivant et très dynamique, les pratiques évoluent et ce cours s’adapte en continu pour tenir compte de l’écosystème mouvant de la data science, en essayant néanmoins de distinguer les évolutions pérennes des pratiques des effets de mode.

Quelques éléments supplémentaires sont disponibles dans les slides introductives. Des éléments plus avancés sont présents dans un autre cours consacré à la mise en production de projets data science que je donne avec Romain Avouac en dernière année de l’ENSAE (ensae-reproductibilite.github.io/website).

Architecture du site web

Ce cours présente des tutoriels et des exercices complets. Chaque page est structurée sous la forme d’un problème concret et présente la démarche générique pour résoudre ce problème général.

Vous pouvez naviguer dans l’architecture du site via la table des matières ou par les liens vers le contenu antérieur ou postérieur à la fin de chaque page. Certaines parties, notamment celle consacrée à la modélisation, proposent des exemples fil-rouge pour illustrer la démarche de manière plus extensive.

Python, dont le logo assez reconnaissable prend la forme de , est un langage qui a déjà plus de trente ans mais qui a connu, au cours de la décennie 2010, une nouvelle jeunesse du fait de l’engouement autour de la data science.

Python, plus que tout autre langage informatique, réunit des communautés aussi diverses que des statisticiens, des développeurs, des gestionnaires d’applications ou d’infrastructures informatiques, des lycéens - Python est au programme du bac français depuis quelques années - ou des chercheurs dans des champs à la fois théoriques et appliqués.

Contrairement à beaucoup de langages informatiques qui fédèrent une communauté assez homogène, Python est parvenu à réunir largement grâce à quelques principes centraux : la lisibilité du langage, la simplicité à utiliser des modules, la simplicité à l’associer à des langages plus performants pour certaines tâches données, l’énorme volume de documentation disponible en ligne… Être le deuxième meilleur langage pour réaliser telle ou telle tâche peut ainsi être une source de succès lorsque la concurrence ne dispose pas d’un éventail aussi large d’avantages.

Le succès de Python, de par sa nature de langage couteau-suisse, est indissociable de l’émergence du profil du data scientist, profil capable de s’intégrer à différents niveaux dans la valorisation de données. Davenport et Patil (2012), dans la Harvard Business Review, ont ainsi pu parler du “boulot le plus sexy du 21e siècle” et ont pu, dix ans plus tard, faire un panorama complet de l’évolution des compétences attendues d’un data scientist dans la même revue (Davenport et Patil 2022). Ce ne sont d’ailleurs pas que les data scientists qui ont vocation à pratiquer Python ; dans le halo des emplois autour de la donnée (data scientist, data engineer, ML engineer…), Python fait office de tour de Babel permettant la communication entre ces différents profils interdépendants.

La richesse de Python permet de l’utiliser dans toutes les phases du traitement de la donnée, de sa récupération et structuration à partir de sources diverses à sa valorisation. Par le prisme de la data science, nous verrons que Python est un très bon candidat pour assister les data scientists dans tous les aspects du travail de données.

Ce cours introduit différents outils qui permettent de mettre en relation des données et des théories grâce à Python. Néanmoins, ce cours va au-delà d’une simple introduction au langage et propose des éléments plus approfondis, notamment sur les dernières innovations permises par la data science dans les méthodes de travail.

2 Pourquoi faire du Python pour l’analyse de données ?

Python est d’abord connu, dans le monde de la data science, pour avoir fourni très tôt les outils utiles à l’entraînement d’algorithmes de machine learning sur plusieurs types de données. Certes, le succès de Scikit Learn1, de Tensorflow2 ou plus récemment de PyTorch3 dans la communauté de la data science ont beaucoup contribué à l’adoption de Python. Cependant, réduire Python à quelques librairies de machine learning serait réducteur tant il s’agit d’un véritable couteau-suisse pour les data scientists, les social scientists ou les économistes. La success story de Python n’est pas seulement le fait d’avoir proposé des librairies de machine learning à un moment adéquat: ce langage dispose de réels atouts pour de nouveaux praticiens de la donnée.

L’intérêt de Python est son rôle central dans un écosystème plus large autour d’outils puissants, flexibles et open-source. Il appartient, comme le langage , à cette classe de langages pouvant servir au quotidien pour des tâches très diversifiées. Dans de nombreux domaines explorés dans ce cours, Python est, de loin, le langage informatique proposant l’écosystème le plus complet et le plus simple d’accès.

Outre le machine learning dont nous avons déjà parlé, Python est incontournable dès lors qu’on désire récupérer des données par le biais d’API ou de web scraping4, deux approches que nous explorerons dans la première partie du cours. Dans les domaines de l’analyse de données tabulaires5, de la publication de contenu web ou de la production de graphiques, Python présente un écosystème de plus en plus similaire à du fait de l’investissement croissant de Posit, l’entreprise à l’origine des principales librairies pour la data science, dans la communauté Python.

Néanmoins, il ne s’agit pas, par ces éléments, de rentrer dans la guéguerre stérile vs Python. Ces deux langages ayant beaucoup plus de points de convergence que de divergence, il est très simple de transposer les bonnes pratiques d’un langage à l’autre. Il s’agit d’un point qui est développé plus amplement dans le cours plus avancé que je donne avec Romain Avouac en dernière année d’ENSAE : ensae-reproductibilite.github.io/website.

A terme, les data scientists et chercheurs en sciences sociales ou économie utiliseront de manière presque indifférente, et en alternance, ou Python. Ce cours présentera ainsi régulièrement des analogies avec pour aider les personnes découvrant Python, mais connaissant déjà bien , à mieux comprendre certains messages.

3 Objectifs du cours

3.1 Initier à la démarche de la data science

Ce cours s’adresse aux praticiens de la data science, discipline entendue ici au sens large comme la combinaison de techniques issues des mathématiques, de la statistique et de l’informatique pour produire de la connaissance utile à partir de données. Comme la data science n’est pas uniquement une discipline scientique mais vise également à fournir un ensemble d’outils pour répondre à des objectifs opérationnels, l’apprentissage du principal outil nécessaire à l’acquisition de connaissances en data science, à savoir le langage Python est également l’occasion d’évoquer la démarche scientifique rigoureuse à adopter face à des données. Ce cours a pour objectif de présenter la démarche face à un jeu de données, les problèmes rencontrés, les solutions pour les surmonter et les implications que ces dernières peuvent avoir. Il ne s’agit donc pas que d’un cours sur un outil technique, désincarné de problématiques scientifiques.

Faut-il avoir un background en mathématiques pour ce cours ?

Ce cours présuppose qu’on désire faire un usage de Python intense en données dans un cadre statistique rigoureux. Il ne revient que de manière secondaire sur les fondements statistiques ou algorithmiques derrière certaines des techniques évoquées, souvent l’objet d’enseignements dédiés, notamment à l’ENSAE.

Ne pas connaître ces notions n’empêche ainsi pas de comprendre le contenu de ce site web car les concepts plus avancés sont généralement présentés à part, dans des encadrés dédiés. La facilité d’usage de Python évite de devoir programmer soi-même un modèle, ce qui rend possible l’application de modèles dont on n’est pas expert. La connaissance des modèles sera plutôt nécessaire dans l’interprétation des résultats.

Pour autant, même s’il est relativement facile d’utiliser des modèles complexes avec Python, il est fort utile d’avoir du recul sur ceux-ci avant de se lancer dans une démarche de modélisation. Il s’agit de l’une des raisons pour lesquelles la modélisation arrive si tardivement dans ce cours: en plus de faire appel à des concepts statistiques avancés, il est nécessaire, pour produire une modélisation pertinente, d’avoir appréhendé les faits stylisés dans nos données. Bien comprendre la structure des données et leur adéquation avec les hypothèses d’un modèle est indispensable pour construire une modélisation de qualité.

3.2 Reproductibilité

Ce cours donne une place centrale à la notion de reproductibilité. Cette exigence se traduit de diverses manières dans cet enseignement, en premier lieu en permettant que tous les exemples et exercices de ce cours soient testés par le biais de notebooks Jupyter6.

L’ensemble du contenu du site web est reproductible dans des environnements informatiques divers. Il est bien sûr possible de copier-coller les morceaux de code présents dans ce site, grâce au bouton présent au dessus des exemples de code:

1x = "Essayez de me copier-coller"
1
Cliquez sur le bouton pour copier ce contenu et le coller ailleurs.

Néanmoins, comme ce site présente de nombreux exemples, les allers et retours entre un environnement de test de Python et celui-ci pourraient être pénibles. Chaque chapitre est donc facilement récupérable sous forme de notebook Jupyter grâce à des boutons au début de chaque page. Voici, par exemple, ces boutons pour le tutoriel Numpy :

View on GitHub Onyxia Onyxia Open In Colab

Les recommandations concernant les environnements à privilégier pour utiliser ces notebooks sont reportées au prochain chapitre.

L’exigence de reproductibilité se manifeste également dans le choix des exemples pris pour ce cours. L’ensemble du contenu de ce site s’appuie sur des données ouvertes, qu’il s’agisse de données françaises (principalement issues de la plateforme centralisatrice data.gouv ou du site web de l’Insee) ou de données américaines. Les résultats sont donc reproductibles pour quelqu’un disposant d’un environnement identique7.

Note

Des chercheurs américains ont pu parler de crise de la reproductibilité dans le domaine du machine learning (Kapoor et Narayanan 2022). Les dérives de l’écosystème de la publication scientifique et les enjeux économiques derrière les publications académiques dans le domaine du machine learning ont une place privilégiée parmi les facteurs pouvant l’expliquer.

Néanmoins, l’enseignement universitaire porte également une responsabilité dans ce domaine. Les étudiants et chercheurs ne sont pas formés à ces sujets et s’ils n’adoptent pas cette exigence tôt dans leur parcours, ils n’y seront plus forcément incités ultérieurement. Pour cette raison, en plus de former à Python et à la data science, ce cours introduit à l’usage du logiciel de contrôle de version Git dans une partie dédiée. Tous les projets des élèves doivent être open source, ce qui est l’une des meilleures manières, pour un enseignant, de trouver une consigne pour que les élèves produisent un code de qualité.

3.3 Évaluation

Les élèves de l’ENSAE valident le cours grâce à un projet approfondi. Les éléments relatifs à l’évaluation du cours, ainsi qu’une liste des projets déjà effectués, sont disponibles dans la Section Évaluation.

4 Plan du cours

Ce cours est une introduction aux enjeux de la data science à travers l’apprentissage du langage Python. Comme le terme “data science” l’indique, une partie importante de ce cours est consacrée au travail sur les données: récupération, structuration, exploration, mise en relation. C’est l’objet de la première partie du cours “Manipuler des données” qui sert de fondement au reste du cours. Malheureusement, de nombreuses formations en data science, statistiques appliquées ou sciences économiques et sociales, font l’impasse sur cette part du travail des data scientists qu’on appelle parfois “data wrangling” ou “feature engineering”. qui, en plus de représenter une part importante du temps de travail des data scientists, est indispensable pour construire un modèle pertinent.

L’objectif de cette partie est d’illustrer les enjeux liés à la récupération de plusieurs types de sources de données et à leur exploitation par le biais de Python. Les exemples seront diversifiés, pour illustrer la richesse des données qui peuvent être analysées avec Python: statistiques d’émissions communales de \(CO_2\), données de transactions immobilières, diagnostics énergétiques des logements, données de fréquentation des stations vélib…

La deuxième partie est consacrée à la production de visualisations avec Python. Après avoir récupéré et nettoyé des données, on désire généralement synthétiser celles-ci par le biais de tableaux, de productions graphiques ou de cartes. Cette partie est une introduction rapide à ce sujet (“Communiquer avec Python). Assez introductive, l’objectif de cette partie est surtout de donner quelques notions qui sont consolidées par la suite.

La troisième partie est consacrée à la modélisation à travers l’exemple fil rouge de la science électorale (“Modéliser avec Python). L’objectif de cette partie est d’illustrer la démarche scientifique du machine learning, les choix méthodologiques et techniques afférents et ouvrir vers les enjeux suivants qui seront évoqués dans la suite du cursus universitaire.

La quatrième partie du cours fait un pas de côté pour se consacrer aux enjeux spécifiques liés à l’exploitation des données textuelles. Il s’agit du chapitre d’“Introduction au Natural Language Processing (NLP)” avec Python. Ce champ de recherche étant particulièrement actif, il ne s’agit que d’une introduction au sujet. Pour aller plus loin, se référer à Russell et Norvig (2020), chapitre 24.

Références

Davenport, Thomas H, et DJ Patil. 2012. « Data scientist, the sexiest job of the 21st century ». Harvard business review 90 (5): 70‑76. https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century.
———. 2022. « Is data scientist still the sexiest job of the 21st century? » Harvard Business Review 90.
Kapoor, Sayash, et Arvind Narayanan. 2022. « Leakage and the Reproducibility Crisis in ML-based Science ». arXiv. https://doi.org/10.48550/ARXIV.2207.07048.
Russell, Stuart J., et Peter Norvig. 2020. Artificial Intelligence: A Modern Approach (4th Edition). Pearson. http://aima.cs.berkeley.edu/.

Informations additionnelles

environment files have been tested on.

Latest built version: 2024-11-13

Python version used:

'3.12.6 | packaged by conda-forge | (main, Sep 30 2024, 18:08:52) [GCC 13.3.0]'
Package Version
affine 2.4.0
aiobotocore 2.15.1
aiohappyeyeballs 2.4.3
aiohttp 3.10.8
aioitertools 0.12.0
aiosignal 1.3.1
alembic 1.13.3
altair 5.4.1
aniso8601 9.0.1
annotated-types 0.7.0
appdirs 1.4.4
archspec 0.2.3
asttokens 2.4.1
attrs 24.2.0
babel 2.16.0
bcrypt 4.2.0
beautifulsoup4 4.12.3
black 24.8.0
blinker 1.8.2
blis 0.7.11
bokeh 3.5.2
boltons 24.0.0
boto3 1.35.23
botocore 1.35.23
branca 0.7.2
Brotli 1.1.0
cachetools 5.5.0
cartiflette 0.0.2
Cartopy 0.24.1
catalogue 2.0.10
cattrs 24.1.2
certifi 2024.8.30
cffi 1.17.1
charset-normalizer 3.3.2
click 8.1.7
click-plugins 1.1.1
cligj 0.7.2
cloudpathlib 0.20.0
cloudpickle 3.0.0
colorama 0.4.6
comm 0.2.2
commonmark 0.9.1
conda 24.9.1
conda-libmamba-solver 24.7.0
conda-package-handling 2.3.0
conda_package_streaming 0.10.0
confection 0.1.5
contextily 1.6.2
contourpy 1.3.0
cryptography 43.0.1
cycler 0.12.1
cymem 2.0.8
cytoolz 1.0.0
dask 2024.9.1
dask-expr 1.1.15
databricks-sdk 0.33.0
debugpy 1.8.6
decorator 5.1.1
Deprecated 1.2.14
diskcache 5.6.3
distributed 2024.9.1
distro 1.9.0
docker 7.1.0
duckdb 0.10.1
en-core-web-sm 3.7.1
entrypoints 0.4
et_xmlfile 2.0.0
exceptiongroup 1.2.2
executing 2.1.0
fastexcel 0.11.6
fastjsonschema 2.20.0
fiona 1.10.1
Flask 3.0.3
folium 0.17.0
fontawesomefree 6.6.0
fonttools 4.54.1
frozendict 2.4.4
frozenlist 1.4.1
fsspec 2023.12.2
gensim 4.3.2
geographiclib 2.0
geopandas 1.0.1
geoplot 0.5.1
geopy 2.4.1
gitdb 4.0.11
GitPython 3.1.43
google-auth 2.35.0
graphene 3.3
graphql-core 3.2.4
graphql-relay 3.2.0
graphviz 0.20.3
great-tables 0.12.0
greenlet 3.1.1
gunicorn 22.0.0
h2 4.1.0
hpack 4.0.0
htmltools 0.6.0
hyperframe 6.0.1
idna 3.10
imageio 2.36.0
importlib_metadata 8.5.0
importlib_resources 6.4.5
inflate64 1.0.0
ipykernel 6.29.5
ipython 8.28.0
itsdangerous 2.2.0
jedi 0.19.1
Jinja2 3.1.4
jmespath 1.0.1
joblib 1.4.2
jsonpatch 1.33
jsonpointer 3.0.0
jsonschema 4.23.0
jsonschema-specifications 2024.10.1
jupyter-cache 1.0.0
jupyter_client 8.6.3
jupyter_core 5.7.2
kaleido 0.2.1
kiwisolver 1.4.7
langcodes 3.4.1
language_data 1.2.0
lazy_loader 0.4
libmambapy 1.5.9
locket 1.0.0
lxml 5.3.0
lz4 4.3.3
Mako 1.3.5
mamba 1.5.9
mapclassify 2.8.1
marisa-trie 1.2.1
Markdown 3.6
markdown-it-py 3.0.0
MarkupSafe 2.1.5
matplotlib 3.9.2
matplotlib-inline 0.1.7
mdurl 0.1.2
menuinst 2.1.2
mercantile 1.2.1
mizani 0.11.4
mlflow 2.16.2
mlflow-skinny 2.16.2
msgpack 1.1.0
multidict 6.1.0
multivolumefile 0.2.3
munkres 1.1.4
murmurhash 1.0.10
mypy-extensions 1.0.0
narwhals 1.13.5
nbclient 0.10.0
nbformat 5.10.4
nest_asyncio 1.6.0
networkx 3.3
nltk 3.9.1
numpy 1.26.4
opencv-python-headless 4.10.0.84
openpyxl 3.1.5
opentelemetry-api 1.16.0
opentelemetry-sdk 1.16.0
opentelemetry-semantic-conventions 0.37b0
OWSLib 0.28.1
packaging 24.1
pandas 2.2.3
paramiko 3.5.0
parso 0.8.4
partd 1.4.2
pathspec 0.12.1
patsy 0.5.6
Pebble 5.0.7
pexpect 4.9.0
pickleshare 0.7.5
pillow 10.4.0
pip 24.2
platformdirs 4.3.6
plotly 5.24.1
plotnine 0.13.6
pluggy 1.5.0
polars 1.8.2
preshed 3.0.9
prometheus_client 0.21.0
prometheus_flask_exporter 0.23.1
prompt_toolkit 3.0.48
protobuf 4.25.3
psutil 6.0.0
ptyprocess 0.7.0
pure_eval 0.2.3
py7zr 0.20.8
pyarrow 17.0.0
pyarrow-hotfix 0.6
pyasn1 0.6.1
pyasn1_modules 0.4.1
pybcj 1.0.2
pycosat 0.6.6
pycparser 2.22
pycryptodomex 3.21.0
pydantic 2.9.2
pydantic_core 2.23.4
Pygments 2.18.0
PyNaCl 1.5.0
pynsee 0.1.8
pyogrio 0.10.0
pyOpenSSL 24.2.1
pyparsing 3.1.4
pyppmd 1.1.0
pyproj 3.7.0
pyshp 2.3.1
PySocks 1.7.1
python-dateutil 2.9.0
python-dotenv 1.0.1
python-magic 0.4.27
pytz 2024.1
pyu2f 0.1.5
pywaffle 1.1.1
PyYAML 6.0.2
pyzmq 26.2.0
pyzstd 0.16.2
querystring_parser 1.2.4
rasterio 1.4.2
referencing 0.35.1
regex 2024.9.11
requests 2.32.3
requests-cache 1.2.1
retrying 1.3.4
rich 13.9.4
rpds-py 0.21.0
rsa 4.9
ruamel.yaml 0.18.6
ruamel.yaml.clib 0.2.8
s3fs 2023.12.2
s3transfer 0.10.2
scikit-image 0.24.0
scikit-learn 1.5.2
scipy 1.13.0
seaborn 0.13.2
setuptools 74.1.2
shapely 2.0.6
shellingham 1.5.4
six 1.16.0
smart-open 7.0.5
smmap 5.0.0
sortedcontainers 2.4.0
soupsieve 2.5
spacy 3.7.5
spacy-legacy 3.0.12
spacy-loggers 1.0.5
SQLAlchemy 2.0.35
sqlparse 0.5.1
srsly 2.4.8
stack-data 0.6.2
statsmodels 0.14.4
tabulate 0.9.0
tblib 3.0.0
tenacity 9.0.0
texttable 1.7.0
thinc 8.2.5
threadpoolctl 3.5.0
tifffile 2024.9.20
toolz 1.0.0
topojson 1.9
tornado 6.4.1
tqdm 4.66.5
traitlets 5.14.3
truststore 0.9.2
typer 0.13.0
typing_extensions 4.12.2
tzdata 2024.2
Unidecode 1.3.8
url-normalize 1.4.3
urllib3 1.26.20
wasabi 1.1.3
wcwidth 0.2.13
weasel 0.4.1
webdriver-manager 4.0.2
websocket-client 1.8.0
Werkzeug 3.0.4
wheel 0.44.0
wordcloud 1.9.3
wrapt 1.16.0
xgboost 2.1.1
xlrd 2.0.1
xyzservices 2024.9.0
yarl 1.13.1
yellowbrick 1.5
zict 3.0.0
zipp 3.20.2
zstandard 0.23.0

View file history

SHA Date Author Description
488780a 2024-09-25 14:32:16 Lino Galiana Change badge (#556)
5d15b06 2024-09-23 15:39:40 lgaliana Handling badges problem
f8b0413 2024-08-28 15:15:04 Lino Galiana Révision complète de la partie introductive (#549)
0908656 2024-08-20 16:30:39 Lino Galiana English sidebar (#542)
a987fea 2024-06-23 18:43:06 Lino Galiana Fix broken links (#506)
69a4585 2024-06-12 20:02:14 Antoine Palazzolo correct link (#502)
005d89b 2023-12-20 17:23:04 Lino Galiana Finalise l’affichage des statistiques Git (#478)
1684220 2023-12-02 12:06:40 Antoine Palazzolo Première partie de relecture de fin du cours (#467)
1f23de2 2023-12-01 17:25:36 Lino Galiana Stockage des images sur S3 (#466)
69cf52b 2023-11-21 16:12:37 Antoine Palazzolo [On-going] Suggestions chapitres modélisation (#452)
a771183 2023-10-09 11:27:45 Antoine Palazzolo Relecture TD2 par Antoine (#418)
e8d0062 2023-09-26 15:54:49 Kim A Relecture KA 25/09/2023 (#412)
154f09e 2023-09-26 14:59:11 Antoine Palazzolo Des typos corrigées par Antoine (#411)
6178ebe 2023-09-26 14:18:34 Lino Galiana Change quarto project type (#409)
9a4e226 2023-08-28 17:11:52 Lino Galiana Action to check URL still exist (#399)
8082302 2023-08-25 17:48:36 Lino Galiana Mise à jour des scripts de construction des notebooks (#395)
3bdf3b0 2023-08-25 11:23:02 Lino Galiana Simplification de la structure 🤓 (#393)
dde3e93 2023-07-21 22:22:05 Lino Galiana Fix bug on chapter order (#385)
2dbf853 2023-07-05 11:21:40 Lino Galiana Add nice featured images (#368)
f21a24d 2023-07-02 10:58:15 Lino Galiana Pipeline Quarto & Pages 🚀 (#365)
Retour au sommet

Notes de bas de page

  1. Library developed by the French public research laboratories of INRIA since 2007.↩︎

  2. Library initially used by Google for their internal needs, it was made public in 2015. Although less used now, this library had a significant influence in the 2010s by promoting the use of neural networks in research and operational applications.↩︎

  3. Library developed by Meta since 2018 and affiliated since 2022 with the PyTorch foundation.↩︎

  4. In these two areas, the most serious competitor to Python is Javascript. However, the community around this language is more focused on web development issues than on data science.↩︎

  5. Tabular data are structured data, organized, as their name indicates, in a table format that allows matching observations with variables. This structuring differs from other types of more complex data: free texts, images, sounds, videos… In the domain of unstructured data, Python is the hegemonic language for analysis. In the domain of tabular data, Python’s competitive advantage is less pronounced, particularly compared to , but these two languages offer a core set of fairly similar functionalities. We will regularly draw parallels between these two languages in the chapters dedicated to the Pandas library.↩︎

  6. Un notebook est un environnement interactif qui permet d’écrire et d’exécuter du code en direct. Il combine, dans un seul document, du texte, du code qui peut être exécuté et dont les sorties s’affichent après calculs. C’est extrêmement pratique pour l’apprentissage du langage Python. Pour plus de détails, consultez la documentation officielle de Jupyter.↩︎

  7. Le fait d’ouvrir les chapitres sous la forme de notebooks dans des environnements standardisés, ce qui sera proposé à partir du prochain chapitre, permet d’assurer que vous disposiez d’un environnement contrôlé. Les installations personnelles de Python ont toutes les chances d’avoir subies des bidouillages modifiant votre environnement et pouvant provoquer des erreurs inattendues et difficiles à comprendre: ce n’est donc pas un usage recommandé pour ce cours. Comme vous pourrez le découvrir dans le prochain chapitre, les environnements cloud offrent un confort en ce qui concerne la standardisation des environnements.↩︎

Citation

BibTeX
@book{galiana2023,
  author = {Galiana, Lino},
  title = {Python pour la data science},
  date = {2023},
  url = {https://pythonds.linogaliana.fr/},
  doi = {10.5281/zenodo.8229676},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
Galiana, Lino. 2023. Python pour la data science. https://doi.org/10.5281/zenodo.8229676.