Python >> Tutoriel Python >  >> Python Tag >> NumPy

Comment calculer l'écart type dans NumPy ?

Formulation du problème : Comment calculer l'écart type dans NumPy ?

Différenciations  :Il existe de nombreuses variantes différentes de ce problème :

  • Calculer l'écart type d'un tableau 1D
  • Calculer l'écart type d'un tableau 2D
  • Calculer l'écart type d'un tableau 3D

Ensuite, vous pouvez également calculer l'écart type le long d'un axe :

  • Calculer l'écart type d'un tableau 2D le long des colonnes
  • Calculer l'écart type d'un tableau 2D le long des lignes

Tous utilisent le np.std(array, axis) fonction qui peut être personnalisée en fonction du problème à résoudre.

Syntax: np.std(array, axis=0)
Argumentation array-like Tableau pour lequel l'écart type doit être calculé
Argumentation axis Axe le long duquel l'écart type doit être calculé. Facultatif.
Valeur de retour array ou number Si aucun argument d'axe n'est donné (ou est défini sur 0), renvoie un nombre. Sinon, renvoie l'écart type le long de l'axe qui est un tableau NumPy avec une dimensionnalité réduite de un.

Avant de nous plonger dans les différentes façons de calculer l'écart type dans NumPy, permettez-moi de vous donner rapidement un indice qu'il existe des arguments facultatifs supplémentaires, mais la plupart d'entre eux sont peu utilisés. Vous pouvez les consulter ici.

Comment calculer l'écart type d'un tableau 1D

import numpy as np

arr = np.array([0, 10, 0])
dev = np.std(arr)

print(dev)
# 4.714045207910316

Comment calculer l'écart type d'un tableau 2D

import numpy as np

arr = np.array([[1, 2, 3],
                [1, 1, 1]])
dev = np.std(arr)
print(dev)
# 0.7637626158259734

Comment calculer l'écart type d'un tableau 3D

import numpy as np

arr = np.array([[[1, 1], [0, 0]],
                [[0, 0], [0, 0]]])
dev = np.std(arr)
print(dev)
# 0.4330127018922193

Vous pouvez passer un tableau à n dimensions et NumPy calculera simplement l'écart type du tableau aplati.

Comment calculer l'écart type d'un tableau 2D le long des colonnes

import numpy as np

matrix = [[1, 2, 3],
          [2, 2, 2]]

# calculate standard deviation along columns
y = np.std(matrix, axis=0)
print(y)
# [0.5 0.  0.5]

Comment calculer l'écart type d'un tableau 2D le long des lignes

import numpy as np

matrix = [[1, 2, 3],
          [2, 2, 2]]

# calculate standard deviation along rows
z = np.std(matrix, axis=1)
print(z)
# [0.81649658 0.]

Puzzle NumPy de la science des données

import numpy as np

# daily stock prices
# [open, close]
google = np.array(
    [[1239, 1258], # day 1
     [1262, 1248], # day 2
     [1181, 1205]]) # day 3

# standard deviation
y = np.std(google, axis=1)

print(y[2] == max(y))

Quel est le résultat de ce puzzle ?
*Niveau avancé*

Vous pouvez résoudre le puzzle dans notre application interactive Finxter ici :

Numpy est une bibliothèque Python populaire pour la science des données axée sur les tableaux, les vecteurs et les matrices.

Ce puzzle présente la fonction d'écart type de la bibliothèque NumPy. Lorsqu'elle est appliquée à un tableau 1D, cette fonction renvoie son écart type. Lorsqu'il est appliqué à un tableau 2D, NumPy aplatit simplement le tableau. Le résultat est l'écart type du tableau 1D aplati.

Dans le puzzle, nous avons une matrice à trois lignes et deux colonnes. La matrice stocke les cours d'ouverture et de clôture de l'action Google pendant trois jours consécutifs. La première colonne indique le cours d'ouverture, la seconde le cours de clôture.

Nous nous intéressons à l'écart-type des trois jours. De combien le cours de l'action s'écarte-t-il de la moyenne entre le cours d'ouverture et le cours de clôture ?

Numpy fournit cette fonctionnalité via le paramètre d'axe. Dans une matrice 2D, la ligne est spécifiée comme axis=0 et la colonne comme axis=1 . Nous voulons calculer l'écart type le long de la colonne, c'est-à-dire axis=1 . Il en résulte trois valeurs d'écart type - une par jour.

Clairement, le troisième jour, nous avons observé l'écart-type le plus élevé.


Êtes-vous un codeur maître?
Testez vos compétences maintenant !

Vidéo connexe 1

Vidéo associée 2