Pourquoi NumPy est la base de l'analyse de données Python
Agence web » Actualités du digital » Pourquoi NumPy est la base de l'analyse de données Python

Pourquoi NumPy est la base de l'analyse de données Python

Vous avez peut-être entendu parler de NumPy et vous vous demandez pourquoi il semble si essentiel à l'analyse des données en Python. Qu'est-ce qui fait que NumPy semble se retrouver partout dans les calculs statistiques avec Python ? Voici quelques bonnes raisons.

NumPy facilite la création de tableaux multidimensionnels

La science et l’ingénierie, y compris les statistiques et la science des données, s’appuient fortement sur l’algèbre linéaire, qui sera mentionnée plus loin. La représentation de vecteurs et de matrices signifie que les développeurs ont besoin d'un moyen simple d'implémenter et d'accéder à des tableaux numériques multidimensionnels.

Sans bibliothèque, cela nécessiterait une quantité importante de programmation fastidieuse et d'itérations utilisant des boucles, ce qui peut être fastidieux à gérer et ralentir le système, en particulier avec un langage interprété comme Python. Comme pour les autres bibliothèques Python, le travail a été en grande partie réalisé avec NumPy.

Vous pouvez créer un tableau à une dimension comme ceci :

        import numpy as np
a = np.array((1,2,3,4))

Ceci est similaire aux tableaux Python standard, avec les éléments entre crochets. Dans le langage NumPy, ce tableau a un axe. Cela pourrait représenter simplement une liste de nombres, ou cela pourrait être un vecteur. Ce serait similaire à un vecteur dans R, un autre langage populaire en statistique et en science des données.

Vous pouvez également créer des tableaux à partir de séquences à l'aide de la fonction arange. Par exemple, pour créer un tableau de nombres pairs compris entre 2 et 8 :

        np.arange(2,10,2)
    

Le premier nombre est la limite inférieure, le second est la limite supérieure et le dernier est la taille du pas, ce qui signifie que NumPy comptera par 2.

Vous pouvez également utiliser la fonction arange pour les nombres à virgule flottante :

        np.arange(2,10,2)
np.linspace(0,50,100)

Cela créera un tableau régulièrement espacé de 100 nombres compris entre 0 et 50.

Vous pouvez également créer un tableau à deux dimensions pouvant représenter une matrice. Vous pouvez créer un tableau de trois lignes sur trois colonnes, puis l'examiner dans une session interactive, comme dans IPython ou un notebook Jupyter :

        
A = np.array(((1,2,3),(4,5,6),(7,8,9)))
A

Chaque ligne du tableau est entourée de crochets. Il s'agit en fait d'un tableau de tableaux. En termes matriciels, puisque le nombre de lignes et de colonnes dans ce tableau est égal, cela serait appelé une « matrice carrée » en algèbre linéaire. Il est facile de traduire des idées mathématiques dans ces tableaux, c'est pourquoi Python devient un langage de choix en science et analyse des données.

Calcul numérique rapide

NumPy est connu pour sa rapidité dans les calculs. Vous ne remarquerez peut-être pas cela avec des opérations plus petites sur un PC, mais sur des systèmes plus gros effectuant de nombreux calculs, les performances sont importantes. Alors que Python est connu comme un langage interprété, NumPy utilise en interne du code C et Fortran, y compris les bibliothèques LAPACK et BLAS, pour accélérer les calculs numériques.

C et Fortran sont utilisés en calcul scientifique depuis de nombreuses années, et les bibliothèques de calcul numérique sur lesquelles ils s'appuient ont été soigneusement réglées pour tirer les meilleures performances du silicium sur lequel ils fonctionnent. S'appuyant sur cet héritage de calcul rapide, NumPy accélère considérablement les opérations statistiques de la science et de l'analyse des données modernes.

Calculs de statistiques de base faciles

L'une des raisons pour lesquelles Python et NumPy sont si populaires dans les applications de statistiques est qu'il est facile d'effectuer de nombreux calculs de statistiques descriptives de base standard sur des tableaux. Le module de statistiques intégré de Python en possède, mais il est destiné aux opérations simples que vous effectueriez sur une calculatrice manuelle plutôt que de s'adapter à des tableaux NumPy plus grands.

Les tableaux NumPy ont de nombreuses « fonctions universelles » intégrées que vous pouvez exécuter. Un bon exemple est la moyenne, qui est simplement la somme de tous les points de données divisée par leur nombre.

Pour obtenir la moyenne du tableau que nous avons défini précédemment :

        a.mean()
    

Cela fonctionne également pour la matrice carrée que nous avons également créée.

        A.mean()
    

Vous pouvez également prendre la médiane ou la valeur médiane des données :

np.median(a)

Vous pouvez également prendre l'écart type

        a.std()
    

Ces opérations simples et d’autres expliquent pourquoi NumPy est un élément constitutif de l’analyse statistique avec Python.

Nombres aléatoires

NumPy facilite également la génération de nombres aléatoires. Ceci est important en termes de statistiques et de probabilités car cela vous permet de générer rapidement des données de test.

Pour générer des nombres aléatoires, vous devez définir un générateur de nombres aléatoires, ou objet rng :

        rng = rng = np.random.default_rng()
    

Pour créer un tableau de nombres aléatoires, vous pouvez simplement utiliser la fonction random sur le nouvel objet rng :

        rng.random(5)
    

Cela créera une liste de cinq nombres aléatoires.

Vous pouvez également tirer des nombres aléatoires à partir de distributions de probabilité spécifiques. Pour obtenir des nombres aléatoires de la distribution normale, avec la fameuse courbe en cloche, utilisez la fonction standard_normal

        rng.standard_normal(5)
    

Vous pouvez également créer des tableaux multidimensionnels. Par exemple, pour créer un tableau 3×5 de nombres aléatoires :

        rng.random((3,5))
    

Accès facile aux constantes communes

Une autre fonctionnalité qui rend NumPy populaire pour l'analyse statistique est qu'il inclut des constantes populaires telles que pi et e. Bien que vous puissiez y accéder dans la bibliothèque mathématique de Python, les versions de NumPy sont plus adaptées à une utilisation avec de grands tableaux.

Pour obtenir une approximation de pi :

        np.pi
    

Et de e :

        np.e
    

Vous pouvez les utiliser dans les calculs. Le logarithme népérien, de base e, est l'une des fonctions universelles mentionnées précédemment. Prenons le logarithme népérien de 42 :

        np.log(42)
    

La réponse est environ 3,74. Nous pouvons revenir à notre valeur initiale en élevant e à la puissance du logarithme :

        np.e**3.74
    

Étant donné que e est largement utilisé dans les affaires et la finance pour modéliser une croissance exponentielle, il est utile dans de nombreux contextes réels. C’est pourquoi NumPy a trouvé à son tour de nombreuses applications.

Algèbre linéaire

Comme mentionné précédemment, l’algèbre linéaire est omniprésente dans le monde scientifique, y compris les statistiques. La raison principale est qu'il prend les systèmes d'équations linéaires que vous avez peut-être appris dans un cours d'algèbre au lycée et les représente sous une forme plus compacte, sans toutes ces lettres ennuyeuses. Grâce à la vitesse de calcul numérique offerte par NumPy, la résolution des équations qui apparaissent dans les statistiques est beaucoup plus facile et plus rapide que de faire les choses à la main.

L'application la plus évidente de l'algèbre linéaire en statistique est la régression linéaire, dans laquelle vous tracez une ligne sur un ensemble de points de données pour minimiser le carré de la distance jusqu'au nuage de points de données. Lorsque vous disposez de points de données se chiffrant en centaines, voire en milliers, même le plus grand passionné de mathématiques n'essaiera pas de résoudre un système à la main. Il est préférable d'utiliser NumPy pour ce faire et d'économiser le travail d'un chercheur. NumPy permet d'obtenir facilement des réponses rapides aux questions statistiques.

D'autres bibliothèques en dépendent

La plupart du temps, vous n'utilisez pas NumPy seul. Parce que NumPy est si largement accepté dans l’écosystème scientifique Python, de nombreuses bibliothèques l’utiliseront en coulisses. La bibliothèque pandas organisera vos données dans des DataFrames de type feuille de calcul. Seaborn créera des tracés de vos données. Vous pouvez exécuter des analyses de régression et des tests statistiques dans statsmodels, pingoun et le module de statistiques de SciPy. SciPy lui-même est une bibliothèque complémentaire à NumPy, offrant toutes sortes d'opérations, y compris des distributions de probabilité, des informations sur l'asymétrie d'un ensemble de données, etc. Scikit-learn offre également des capacités avancées d'apprentissage automatique. Tous ces éléments fonctionnent au-dessus des données NumPy et étendent ses capacités.

Avec toutes ces bibliothèques, Python offre une alternative plus flexible aux programmes monolithiques comme Mathematica de Wolfram. Il est plus puissant qu'Excel et nécessite moins de clics. Python étant déjà un langage de script populaire, il est également facile d’écrire des scripts pour automatiser des opérations répétitives. Le notebook Jupyter est issu de cette communauté scientifique et offre un moyen de partager des résultats reproductibles. La reproductibilité est importante en science. D'autres chercheurs doivent pouvoir dupliquer votre travail pour le vérifier.

Pour toutes ces raisons, Python devient un langage de choix pour les statistiques.

★★★★★