Pourquoi je préfère Python pour l'analyse des données
J'ai beaucoup écrit sur l'analyse des données avec Python récemment. Je voulais expliquer pourquoi c'était une langue de choix. Voici quelques-unes des raisons pour lesquelles je trouve Python si facile à utiliser, mais puissant.
Sommaire
Python propose des calculs interactifs rapides
Python me permet d'exécuter des calculs statistiques beaucoup plus rapidement que je ne pourrais jamais le faire à la main. Lorsque j'ai commencé mon cours de statistique au collège, j'ai dû calculer des statistiques descriptives comme la moyenne, la médiane et l'écart type. La longueur des ensembles de données a rendu cela lourde, même avec la calculatrice scientifique que j'avais. Est-ce que je saisis correctement les données? Je suis rapidement passé à la calculatrice graphique TI que j'avais. Le manuel que j'utilisais est arrivé pour montrer les fonctions statistiques de ce modèle.
Je pense que j'ai toujours ma calculatrice graphique quelque part. Je n'en ai pas besoin avec Python. La blague standard est que vous pouvez l'utiliser comme calculatrice de bureau. L'interprète à lui seul est facile à utiliser pour les calculs de base. La mise à niveau vers Ipython lui donne beaucoup de confort de créatures qui peuvent rendre le python interactif beaucoup plus facile, comme le rappel de l'histoire.
Bien que j'aime jouer à l'occasion avec ma calculatrice scientifique Casio, car j'aime les boutons tactiles, l'utilisation de Python est tellement plus facile. Je peux générer une liste de nombres aléatoires dans Python et trouver immédiatement des statistiques descriptives. Je peux exécuter des opérations sur des listes de 100 éléments. Ce serait difficile à faire à la main ou même avec une calculatrice. Python est juste 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 la langue. Non seulement Python est livré avec beaucoup de bibliothèques en soi, une approche qu'il appelle les «batteries incluses», mais il y a beaucoup plus de bibliothèques que je peux exploiter pour l'analyse des données.
Les bibliothèques de mathématiques et de statistiques intégrées sont utiles pour les calculs de base, mais il y en a encore mieux que je suis régulièrement mis en place dans mon environnement Mamba.
Une fondation est Numpy. Il s'agit d'une bibliothèque pour créer et manipuler efficacement de grands tableaux numériques, mais il est également livré avec de nombreuses fonctions que je peux effectuer sur eux, telles que l'algèbre linéaire et les statistiques. C'est ce dernier qui sera au centre de cet article.
Permettez-moi de 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 également prendre l'écart type:
np.std(a)
Ce sont quelques opérations de base. Ce sont les autres bibliothèques qui me gardent à Python.
Les graphiques sont un moyen puissant d'explorer vos données. SeaBorn, sur lequel j'ai écrit auparavant, est un outil puissant. Un bon exemple consiste à visualiser les graphiques de dispersion et les régressions linéaires.
Utilisons un exemple de SeaBorn. Nous importerons un ensemble de données de factures de restaurants à New York, ainsi que des conseils et d'autres variables telles que le nombre de personnes à la table et s'ils étaient des fumeurs ou non.
Plotons le montant de la pointe par rapport à la facture totale:
tips = sns.load_dataset('tips')
sns.regplot(x='total_bill',y='tip',data=tips)
Je peux également voir des parcelles de boîte et des graphiques à barres avec SeaBorn. Regardons le total des factures dans les restaurants sur plusieurs jours:
sns.catplot(x='day',y='total_bill',kind='bar',data=tips)
Je peux également examiner les données plus formellement avec Pingouin, une bibliothèque pour effectuer des tests statistiques. Encore une fois, regardons la base de données TIPS. Le nombre auquel faire attention est le coefficient de corrélation, qui nous indique à quel point la ligne est bonne sur les données. Le carré du coefficient de corrélation est répertorié dans la colonne « R2 ».
pg.linear_regression(tips('total_bill'),tips('tip'))
D'autres fois, vous voulez voir comment une valeur change par rapport aux catégories. Pour cela, l'analyse de la variance ou l'ANOVA est utile.
Passons des factures de restaurant aux billets de pingouin. Ce code examinera un ensemble de données de trois espèces de pingouins: Adélie, Chinstrap et Gentoo. Nous verrons si la différence de longueur de facture en millimètres est importante 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 des données en ce qui concerne le langage de programmation, mais c'est le fait que les noms de méthodes de Python semblent être plus mnémoniques qui mettent Python sur moi.
Je n'ai pas de problème avec R lui-même. Je l'ai déjà utilisé, et c'est une excellente langue pour l'analyse des données, mais peut-être pas si génial pour moi. Par exemple, au lieu du signe égal, attribuant à un vecteur, la liste de nombres similaires aux tableaux Numpy, utilise l'achèvement de l'onglet dans Ipython facilite la saisie des commandes que de repérer quoi que ce soit, et je peux utiliser le mécanisme de l'historique pour revenir sur des commandes précédemment tapées.
Beaucoup de données avec lesquelles jouer
Je m'intéressais depuis longtemps à l'analyse des données, surtout depuis que j'ai entendu parler de la façon dont Python et ses bibliothèques étaient de plus en plus utilisés. J'avais 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, de nombreuses bibliothèques vous permettent d'accéder à des ensembles de données publiques 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 au hasard. Il s'agit d'une autre méthode utile pour apprendre le fonctionnement d'une bibliothèque. Le seul inconvénient des données aléatoires est qu'il change à 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 regardant la durée de vie de la batterie du téléphone et de la tablette.
Il y a aussi 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 à partir de sites Web du gouvernement.
Une chose que j'aime à propos de Python dans l'analyse des données est que le mode interactif me donne une rétroaction immédiate. Je n'ai pas à attendre un cycle de compilation ou à écrire un script avant de pouvoir voir mes résultats. Lorsque j'exécute un calcul dans ipython, je verrai le résultat dans la fenêtre du terminal. Si je fais un complot, il apparaîtra dans une autre fenêtre.
Souvent, lorsque je travaille à travers des données, j'obtiendrai des idées pour d'autres opérations que je veux effectuer. Je peux alors agir sur eux. C'est le véritable pouvoir de la programmation interactive.
Cahiers Jupyter Laissez-moi enregistrer mes calculs
Aussi utile que soit Ipython, une grande partie des opérations que j'effectue auront disparu après cette session, après avoir fermé la fenêtre. Je peux économiser tous les parcelles, mais les calculs auront probablement disparu. Je peux configurer un journal, mais je dois me rappeler de le faire. Si je veux me rappeler comment j'ai fait quelque chose, je devrai passer à travers l'historique des commandes.
C'est peut-être la raison pour laquelle les développeurs d'Ipython ont créé l'interface Jupyter Notebook. Jupyter me permet de construire des cahiers interactifs. J'en crée généralement un lorsque j'explore un ensemble de données et que je souhaite enregistrer les résultats. Je peux y revenir quand je veux. L'autre bonne chose est que je peux partager des cahiers de jupyter avec d'autres personnes, comme sur mon compte GitHub.
Jupyter est devenu une norme de facto dans l'informatique scientifique et les données pour une bonne raison. Il est assez facile pour que les scientifiques de toutes les bandes enregistrent et partagent leurs conclusions avec leurs collègues.
Ce sont les raisons pour lesquelles Python est mon langage de programmation de choix, en particulier pour l'analyse des données. C'est une langue facile pour commencer, et il a grandi avec moi car j'ai appris plus et élargi ce que je peux faire.
