Recherche de site Web

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 devenu un langage 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 manuellement. 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 taille des ensembles de données rendait cela ingérable, même avec la calculatrice scientifique que j'avais. Entrais-je correctement les données ? Je suis rapidement passé à la calculatrice graphique TI que j'avais. Le manuel que j'utilisais montrait 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 classique est que vous pouvez l'utiliser comme une calculatrice de bureau. L'interpréteur en lui-même est facile à utiliser pour des calculs de base. La mise à niveau vers IPython lui donne beaucoup de commodités qui peuvent rendre l'utilisation interactive de Python beaucoup plus facile, comme la mémoire des historiques.

Bien que j'aime bien jouer de temps en temps avec ma calculatrice scientifique Casio, car 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 des statistiques descriptives immédiatement. Je peux effectuer des opérations sur des listes de 100 éléments. Ce serait difficile à faire à la main ou même avec une calculatrice. Python est tout simplement beaucoup plus facile.

Beaucoup de bibliothèques pour faciliter les choses

L'une des meilleures fonctionnalités 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, une approche qu'il appelle « batteries incluses », mais il existe encore beaucoup d'autres bibliothèques que je peux utiliser pour l'analyse de données.

Les bibliothèques mathématiques et statistiques intégrées sont utiles pour des calculs de base, mais il existe même de meilleures bibliothèques que je mets régulièrement en place dans mon environnement Mamba.

Une fondation est NumPy. C'est une bibliothèque pour créer et manipuler des tableaux numériques de grande taille de manière efficace, mais elle est également fournie avec de nombreuses fonctions que je peux y appliquer, telles que l'algèbre linéaire et les statistiques. C'est cette dernière qui sera l'objet 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 prendre la moyenne de cette liste :

np.mean(a)
    

Je peux aussi prendre l'écart type :

np.std(a)
    

Ce sont des opérations de base. Ce sont les autres bibliothèques qui me gardent en Python.

Les graphiques sont un moyen puissant d'explorer vos données. Seaborn, dont j'ai écrit précédemment, est un outil puissant. Un bon exemple est la visualisation des nuages de points et des régressions linéaires.

Prenons un exemple de Seaborn. Nous allons importer un ensemble de données sur les factures de restaurant à New York, ainsi que des 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 montant total de la facture :

tips = sns.load_dataset('tips')
sns.regplot(x='total_bill',y='tip',data=tips)
    

Je peux également afficher des box plots 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. Encore une fois, regardons la base de données des conseils. Le nombre auquel il faut prêter attention est le coefficient de corrélation, qui nous indique à quel point la ligne est bien ajustée aux 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 souhaitez examiner comment une valeur change selon les catégories. Pour cela, l'analyse de la variance, ou ANOVA, est utile.

Passons des factures de restaurant aux factures de manchots. Ce code examinera un ensemble de données sur trois espèces de manchots : Adélie, à menton de Chine, et Gentoo. Nous allons voir si la différence de longueur de bec en millimètres est significative entre 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éthode plus intuitifs

R a été le champion traditionnel de l'analyse de données en ce qui concerne les langages de programmation, mais c'est le fait que les noms de méthodes en Python semblent être plus mnémotechniques qui place Python en tête pour moi.

Je n'ai pas de problème avec R lui-même. Je l'ai utilisé auparavant et c'est un excellent langage pour l'analyse de données, mais peut-être juste pas si génial pour moi. Par exemple, au lieu du signe égal, l'assignation à un vecteur, la liste de nombres similaire aux tableaux NumPy, utilise la "completion automatique dans IPython rend l'entrée des commandes tellement plus facile que de tout retaper, et je peux utiliser le mécanisme d'historique pour revenir aux commandes précédemment tapées."

Beaucoup de données à manipuler

J'étais depuis longtemps intéressé par l'analyse des 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 l'avons vu dans les exemples précédents.

L'autre façon d'obtenir des données est de les générer aléatoirement. C'est une autre méthode qui est utile pour apprendre comment une bibliothèque fonctionne. Le seul inconvénient des données aléatoires est qu'elles changent à chaque fois.

Je peux également créer mes propres ensembles 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 générés par d'autres personnes 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 à partir de sites Web gouvernementaux.

Les opérations interactives donnent un retour immédiat.

Une chose que j'apprécie avec Python dans l'analyse des données, c'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 je lance un calcul dans IPython, je vois le résultat dans la fenêtre du terminal. Si je fais un graphique, il apparaîtra 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 souhaite effectuer. Je peux ensuite agir en conséquence. 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 je réalise seront perdues après cette session, une fois que j'ai fermé la fenêtre. Je peux sauvegarder des graphiques, mais il est probable que les calculs soient perdus. Je peux configurer un journal, mais je dois me souvenir de le faire. Si je veux me souvenir comment j'ai fait quelque chose, je devrais fouiller dans l'historique des commandes.

C'est peut-être pourquoi les développeurs d'IPython ont créé l'interface de notebook Jupyter. Jupyter me permet de créer des notebooks interactifs. Je crée généralement un lorsqu'explore un ensemble de données et que je souhaite 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 facto dans le calcul scientifique et les données pour de bonnes raisons. Il est suffisamment facile pour les scientifiques de toutes sortes d'enregistrer et de partager leurs découvertes avec leurs collègues.


Voici les raisons pour lesquelles Python est mon langage de programmation de prédilection, en particulier pour l'analyse de données. C'est un langage facile à apprendre et il a évolué avec moi à mesure que j'ai appris davantage et élargi ce que je peux faire.