Émilien Schultz, Matthias Bussonnier, Python pour les SHS. Introduction à la programmation pour le traitement de données

Texte intégral
1Le chercheur en sciences humaines et sociales se trouve parfois devant des objets ou des questions avec la certitude de ne pas être appareillé pour les traiter. Il a collecté des données, entrevoit ce vers quoi il voudrait aller, sans savoir comment. Ce manuel offre une riche introduction sur un ensemble d’outils déjà connus ou entraperçus sans que le lecteur ait eu le temps ou la motivation de se former. Il le guide dans l’acquisition des bases, mais à la fin de l’ouvrage rien n’est terminé. Le chercheur est prêt à se plonger dans les vastes ressources de Python.
2Ce manuel part du principe que les sciences humaines et sociales, dans leurs particularités disciplinaires, possèdent des besoins singuliers auxquels peut répondre le langage Python. Loin de la fausse opposition entre les sciences de la nature et les autres, les auteurs relèvent que les pratiques ont déjà, depuis longtemps, intégré l’usage de l’informatique. Pour autant, Python est différent, puisqu’il permet de construire de nouveaux outils en fonction des questions que soulève la recherche. Dès lors, ce manuel introductif accompagne le scientifique dans l’acquisition d’une certaine autonomie.
3Certains pourraient peut-être s’interroger sur la raison de publier un livre alors que les tutoriels ou formations pullulent sur internet. Cependant, il n’apparait pas nécessaire d’opposer cet ouvrage à la masse des sources qui coexistent en ligne. D’un côté, il présente une entrée en matière importante pour des lecteurs submergés par toute cette offre. De l’autre, il garde une fenêtre ouverte sur différentes façons de faire et n’hésite pas à éclairer un choix de ressources nécessaires à la continuation de la formation. Somme toute, c’est pour cela que le nom « introduction » lui va si bien.
4La structure de l’ouvrage ménage une progression dans la connaissance de Python. Des éléments théoriques et pratiques se combinent pour permettre d’appréhender à la fois l’usage d’un code et sa « philosophie ». De nombreux exercices ponctuent le parcours de l’apprenant et l’initient à cette grammaire tout en accordant à l’impétrant la satisfaction de voir quelques lignes réaliser exactement ce qu’il pouvait attendre d’elles. Très didactiques, ces exercices font travailler sur des fichiers de données préexistantes et accessibles sur le dépôt GitHub du livre.
5Une lecture linéaire conduit à envisager le manuel comme un entonnoir qui irait des usages généraux aux particuliers. Passé le premier chapitre qui replace Python dans le contexte des outils informatiques communément employés, l’apprentissage entre dans le vif du sujet. L’impétrant commence par se familiariser avec le langage et l’interface conseillée par les auteurs : Anaconda et le Notebook Jupyter (chapitre 2). Quelques pages de plus et il découvre les bibliothèques qui contiennent des fonctions plus ou moins spécialisées (chapitre 3). Ces chapitres généraux permettent de comprendre tout à la fois l’organisation du langage et de la communauté qui s’est construite autour de Python et qui partage des codes et des bibliothèques. C’est tout un écosystème sur lequel nous diriger afin de réaliser différentes taches plus ou moins répétitives et précises.
6Jusque-là, les auteurs se bornent à une présentation générale, mais il s’agit bien d’un manuel tourné vers les sciences humaines et sociales. La lecture s’oriente rapidement vers la manipulation des données (chapitre 4), qui conduit à l’introduction de la bibliothèque Pandas. Celle-ci permet de travailler à partir de tableaux (chapitre 5). Elle semble incontournable dès lors qu’il s’agit d’employer des fichiers CSV ou Excel. C’est d’ailleurs à ce dernier logiciel que les auteurs la comparent. Les exercices et les codes donnés en exemples permettent de fouiller les tableaux et de les manipuler en modifiant les contenus ou en effectuant des opérations mathématiques. Si la construction de ces codes peut sembler légèrement difficile pour des personnes qui ne maitrisent que sommairement les fonctionnalités habituelles, elle permet tout de même d’entrevoir l’ensemble des possibles.
7La complexité monte ensuite d’un degré avec l’introduction des statistiques descriptives et inférentielles (chapitre 6), puis des visualisations (chapitre 7). Dès lors, les auteurs ne se contentent pas de montrer ou d’expliquer des lignes de code. Ils prennent le temps de revenir sur les notions ainsi que sur la théorie qui peut accompagner le choix de telle ou telle visualisation. L’usage de Python est ainsi contextualisé, et le manuel s’écarte d’une notice technique que le lecteur pouvait craindre, pour aborder des interrogations plus largement méthodologiques. Même si ces paragraphes ne font qu’énoncer des choses connues, ils remettent de la fraicheur sur des notions des notions parfois oubliées, qui éclairent la réflexion du chercheur.
8Un nouveau degré est franchi avec les statistiques avancées (chapitre 8), qui abordent entre autres les analyses factorielles de correspondance ou les modèles d’apprentissage automatique. Ne restent alors plus que des usages avancés et particuliers (chapitre 9) : de la collecte de données complexes à la visualisation cartographique ou l’analyse textuelle. Tout au long de ces chapitres, comme un fil rouge, l’apprenant explore différentes applications sur un fichier démographique. L’emploi d’un véritable set de données lui permet d’avoir une meilleure compréhension du fonctionnement de Pandas, comme une immersion dans les prémisses d’une recherche.
9Cependant, la richesse de ce manuel passe aussi par l’ouverture sur un ensemble de pratiques possibles. Le dernier chapitre offre des clés pour la création ou l’organisation de nouveaux codes que le lecteur pourrait être amené à écrire dans la poursuite de ses recherches. Les auteurs y dédramatisent l’erreur. Il apparait normal d’échouer dans l’acquisition d’un langage, ou la composition d’un texte. Il s’agit alors de prendre le temps de comprendre où sont les fautes et de se perfectionner en remettant cent fois l’ouvrage sur le métier. Cet aspect se retrouve par ailleurs dans l’usage du GitHub, qui peut permettre à tous d’aider les auteurs dans le repérage et la correction de quelques hypothétiques fausses notes. Encore une fois, le manuel s’intègre dans les pratiques liées à Python.
10À côté de sa structure linéaire, il s’agit d’un texte sur lequel nous pouvons revenir encore et encore en fonction des besoins. Avec lui, c’est un apprentissage qui débute. Deux annexes orientent l’ex-lecteur sur la construction d’un code et sur les sites à visiter pour continuer à se former. Dans un usage similaire, les synthèses qui concluent les différents chapitres permettent de naviguer à la recherche de quelques rappels nécessaires.
11La lecture de cet ouvrage donne l’impression d’avoir affaire à un point de départ important. Il s’agit d’un travail ouvert sur une multitude de possibilités actuelles ou en devenir. Par ailleurs, il ne s’enferme pas sur le langage Python. Dès le chapitre introductif, les auteurs mentionnent R, sans dénigrer cet autre langage plus centré sur les statistiques et déjà bien présent dans la communauté. Plus loin, ils évoquent les logiciels spécialisés Iramuteq (qui repose sur R) et Gephi. S’il est polyvalent et peut permettre des études novatrices, Python n’est pas non plus la panacée. C’est cette ouverture, en plus de ressources techniques et théoriques, qui rend ce manuel particulièrement intéressant pour les chercheurs débutants comme pour ceux qui souhaitent faire évoluer leurs pratiques.
Pour citer cet article
Référence électronique
Fabien Aignan, « Émilien Schultz, Matthias Bussonnier, Python pour les SHS. Introduction à la programmation pour le traitement de données », Lectures [En ligne], Les comptes rendus, mis en ligne le 20 février 2021, consulté le 20 mars 2025. URL : http://journals.openedition.org/lectures/47785 ; DOI : https://doi.org/10.4000/lectures.47785
Haut de pageDroits d’auteur
Le texte et les autres éléments (illustrations, fichiers annexes importés), sont « Tous droits réservés », sauf mention contraire.
Haut de page