Pourquoi je préfère Python pour l'analyse de données
J'ai beaucoup écrit récemment sur l'analyse de données avec Python. Je voulais expliquer pourquoi c'est une langue de choix. Voici quelques-unes des raisons pour lesquelles je trouve Python si facile à utiliser, tout en étant puissant.
Python offre des calculs interactifs rapides
Python me permet d'effectuer des calculs statistiques beaucoup plus rapidement que je ne pourrais jamais le faire à la main. Lorsque j'ai commencé mon cours de statistiques à l'université, je devais calculer des statistiques descriptives de base comme la moyenne, la médiane et l'écart type. La longueur des ensembles de données rendait cela peu pratique, même avec la calculatrice scientifique que j'avais. Est-ce que je saisissais correctement les données ? J'ai rapidement changé pour la calculatrice graphique TI que j'avais. Le manuel que j'utilisais montrait justement les fonctions statistiques pour ce modèle.
Je pense que j'ai encore ma calculatrice graphique quelque part. Je n'en ai pas besoin avec Python. La blague habituelle est que vous pouvez l'utiliser comme calculatrice de bureau. L'interpréteur seul est facile à utiliser pour les calculs de base. Passer à IPython lui apporte beaucoup de commodités qui peuvent rendre le Python interactif beaucoup plus facile, comme le rappel de l'historique.
Bien que j'aime parfois m'amuser avec ma calculatrice scientifique Casio, puisque j'apprécie les boutons tactiles, utiliser Python est tellement plus facile. Je peux générer une liste de nombres aléatoires en Python et trouver immédiatement des statistiques descriptives. Je peux effectuer des opérations sur des listes de 100 éléments. Cela serait difficile à faire à la main ou même avec une calculatrice. Python est tout simplement beaucoup plus facile.
De nombreuses bibliothèques pour faciliter les choses
Une des meilleures caractéristiques de Python est le nombre de bibliothèques que vous pouvez utiliser avec le langage. Non seulement Python est livré avec de nombreuses bibliothèques intégrées, une approche qu'il appelle « batteries incluses », mais il existe également de nombreuses autres bibliothèques auxquelles je peux accéder pour l'analyse de données.
Les bibliothèques intégrées de mathématiques et de statistiques sont utiles pour les calculs de base, mais il en existe de meilleures que j'installe régulièrement dans mon environnement Mamba.
Une base est NumPy. Il s'agit d'une bibliothèque pour créer et manipuler efficacement de grands tableaux numériques, mais elle est également accompagnée de nombreuses fonctions que je peux utiliser sur eux, telles que l'algèbre linéaire et les statistiques. C'est ce dernier point qui sera le sujet de cet article.
Laissez-moi générer une liste de nombres aléatoires.
Tout d'abord, je vais configurer le générateur de nombres aléatoires de NumPy :
import numpy as np
rng = np.random.default_rng()
Maintenant, je vais générer une liste de 20 nombres aléatoires :
a = rng.random(20)
Je peux calculer la moyenne de cette liste :
np.mean(a)
Je peux également prendre l'écart type :
np.std(a)
Ce sont quelques opérations de base. Ce sont les autres bibliothèques qui me retiennent en Python.
Les graphiques sont un moyen puissant d'explorer vos données. Seaborn, dont j'ai déjà parlé précédemment, est un outil puissant. Un bon exemple est la visualisation des nuages de points et des régressions linéaires.
Utilisons un exemple de Seaborn. Nous importerons un ensemble de données sur les factures de restaurants à New York, ainsi que sur les pourboires et d'autres variables telles que le nombre de personnes à la table et s'ils étaient fumeurs ou non.
Traçons le montant du pourboire par rapport au total de la facture :
tips = sns.load_dataset('tips')
sns.regplot(x='total_bill',y='tip',data=tips)
Je peux également visualiser des diagrammes en boîte et des graphiques à barres avec Seaborn. Regardons les factures totales dans les restaurants sur plusieurs jours :
sns.catplot(x='day',y='total_bill',kind='bar',data=tips)
Je peux également examiner les données de manière plus formelle avec Pingouin, une bibliothèque pour effectuer des tests statistiques. Regardons à nouveau la base de données des pourboires. Le chiffre auquel il faut prêter attention est le coefficient de corrélation, qui nous indique la qualité de l'ajustement de la ligne sur les données. Le carré du coefficient de corrélation est indiqué dans la colonne « r2 ».
pg.linear_regression(tips['total_bill'],tips['tip'])
D'autres fois, vous voulez examiner comment une valeur change selon les catégories. Pour cela, l'analyse de variance, ou ANOVA, est utile.
Passons des factures de restaurant aux becs de manchot. Ce code examinera un ensemble de données de trois espèces de manchots : Adélie, Jugulaire et Papou. Nous verrons si la différence de longueur du bec en millimètres est significative selon les espèces.
penguins = pg.read_dataset('penguins')
pg.anova(data=penguins,dv='bill_length_mm',between='species').round(2)
La valeur p est de 0,0, ce qui signifie que les différences sont significatives
Noms de Méthodes Plus Intuitifs
R a été le champion traditionnel de l'analyse de données en matière de langage de programmation, mais le fait que les noms des méthodes de Python semblent plus mnémotechniques place Python en tête pour moi.
Je n'ai pas de problème avec R en lui-même. Je l'ai déjà utilisé, et c'est un excellent langage pour l'analyse de données, mais peut-être juste pas idéal pour moi. Par exemple, au lieu du signe égal, l'affectation à un vecteur, la liste de nombres similaire aux tableaux NumPy, utilise la complétion par tabulation dans IPython, ce qui rend la saisie des commandes beaucoup plus facile que de tout retaper, et je peux utiliser le mécanisme d'historique pour retrouver les commandes précédemment saisies.
Beaucoup de données avec lesquelles s'amuser
J'avais longtemps été intéressé par l'analyse de données, surtout depuis que j'avais entendu parler de l'utilisation croissante de Python et de ses bibliothèques. J'avais une certaine familiarité avec Python, mais je voulais m'impliquer. Mais où allais-je trouver des données ?
Heureusement, il est facile de trouver des données. Comme mentionné précédemment, beaucoup de bibliothèques vous permettent d'accéder à des ensembles de données publics afin que vous puissiez apprendre comment ces bibliothèques fonctionnent et valider leurs résultats. Nous avons vu cela dans les exemples précédents.
L'autre façon d'obtenir des données est de les générer de manière aléatoire. C'est une autre méthode utile pour apprendre comment fonctionne une bibliothèque. Le seul inconvénient des données aléatoires est qu'elles changent à chaque fois.
Je peux également créer mes propres jeux de données. C'est ce que j'ai fait pour un projet récent portant sur la durée de vie des batteries de téléphones et de tablettes.
Il existe également de nombreux ensembles de données que d'autres personnes ont générés sur des sites comme Kaggle, que je peux télécharger et explorer en utilisant les outils que j'ai mentionnés ci-dessus. Je peux même télécharger des données depuis des sites web gouvernementaux.
Les opérations interactives donnent un retour immédiat
Une chose que j'aime à propos de Python dans l'analyse de données est que le mode interactif me donne un retour immédiat. Je n'ai pas besoin d'attendre un cycle de compilation ou d'écrire un script avant de pouvoir voir mes résultats. Lorsque j'exécute un calcul dans IPython, je vois le résultat dans la fenêtre du terminal. Si je fais un graphique, il s'affichera dans une autre fenêtre.
Souvent, lorsque je travaille sur des données, j'ai des idées pour d'autres opérations que je veux réaliser. Je peux alors les mettre en œuvre. C'est le véritable pouvoir de la programmation interactive.
Les notebooks Jupyter me permettent d'enregistrer mes calculs
Aussi utile qu'IPython soit, beaucoup des opérations que j'effectue disparaîtront après la session, une fois que je fermerai la fenêtre. Je peux enregistrer des graphiques, mais les calculs seront probablement perdus. Je peux mettre en place un journal, mais je dois me souvenir de le faire. Si je veux me rappeler comment j'ai fait quelque chose, je devrai consulter l'historique des commandes.
C'est peut-être pour cette raison que les développeurs d'IPython ont créé l'interface Jupyter Notebook. Jupyter me permet de créer des notebooks interactifs. Je crée généralement un notebook lorsque j'explore un jeu de données et que je veux enregistrer les résultats. Je peux y revenir quand je le souhaite. L'autre avantage est que je peux partager des notebooks Jupyter avec d'autres personnes, par exemple sur mon compte GitHub.
Jupyter est devenu un standard de fait dans le calcul scientifique et les données, et ce pour de bonnes raisons. Il est suffisamment facile pour que les scientifiques de tous horizons puissent enregistrer et partager leurs découvertes avec leurs collègues.
Voici pourquoi Python est mon langage de programmation de prédilection, en particulier pour l'analyse de données. C'est un langage facile à prendre en main, et il a évolué avec moi à mesure que j'en apprenais davantage et que j'élargissais ce que je peux accomplir.







