我试着计算标准差python没有用的 numpy
或任何外部图书馆除了 math
. 我想获得更好的写作的算法和我只是这样做点"家庭作业"作为提高我蟒蛇的技能。 我的目标是把 这一公式 成python但我没有得到正确的结果。
我使用一系列的速度在哪里 speeds = [86,87,88,86,87,85,86]
当我运行:
std_dev = numpy.std(speeds)
print(std_dev)
我得:0.903507902905. 但我不希望依赖顽固. 所以...
我的执行情况如下:
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)
现在,当我运行:
std_dev = get_std_dev(speeds)
print(std_dev)
我得到: [0]
但我期待0.903507902905
我是什么丢在这里?
1.0
.