Je suis en train de calculer l'écart type en python sans l'utilisation de numpy
ou toute une bibliothèque externe, sauf pour math
. Je veux m'améliorer à l'écriture d'algorithmes et je suis juste le faire un peu de "devoirs" comme je l'ai améliorer mon python compétences. Mon but est de traduire cette formule en python mais je ne suis pas d'obtenir le résultat correct.
Je suis à l'aide d'un tableau de vitesse, speeds = [86,87,88,86,87,85,86]
Quand je le lance:
std_dev = numpy.std(speeds)
print(std_dev)
J'obtiens: 0.903507902905. Mais je ne veux pas compter sur numpy. Alors...
Mon application est comme suit:
import math
speeds = [86,87,88,86,87,85,86]
def get_mean(array):
sum = 0
for i in array:
sum = sum + i
mean = sum/len(array)
return mean
def get_std_dev(array):
# get mu
mean = get_mean(array)
# (x[i] - mu)**2
for i in array:
array = (i - mean) ** 2
return array
sum_sqr_diff = 0
# get sigma
for i in array:
sum_sqr_diff = sum_sqr_diff + i
return sum_sqr_diff
# get mean of squared differences
variance = 1/len(array)
mean_sqr_diff = (variance * sum_sqr_diff)
std_dev = math.sqrt(mean_sqr_diff)
return std_dev
std_dev = get_std_dev(speeds)
print(std_dev)
Maintenant quand je le lance:
std_dev = get_std_dev(speeds)
print(std_dev)
J'obtiens: [0]
mais je suis dans l'attente d'0.903507902905
Ce qui me manque ici?
1.0
.