寻找标准偏差

时间:2013-12-17 15:23:27

标签: python

我无法找到列表的标准偏差,也不太确定我做错了什么。代码低于任何帮助将不胜感激。

n = len(combTimeArray)

numbers = []

mean = sum(combTimeArray)/len(combTimeArray)

numbers.append(int(combTimeArray)

for n in range(len(numbers) - 1) 
        if numbers[n] > mean 
                numbers.append((numbers[n] - average)**2)
        if numbers[n] < mean 
                numbers.append((mean - numbers[n])**2)
        SD = (sum(numbers)/len(numbers))**(1/2.0)
        print SD

3 个答案:

答案 0 :(得分:1)

import numpy
SD = numpy.std(combTimeArray)

答案 1 :(得分:0)

很难理解你的代码:p首先你可以用for-each循环替换for循环 - &gt;这使您的代码更容易阅读并删除丑陋的数字[]语句。

这是我的示例代码(如果你不想使用numpy或smth。类似)

from math import sqrt,pow
numbers = [2,4,4,4,5,5,7,9]

def standardDeviation(l):
   mean = sum(l)/len(l)
   differencelist = []
   for elem in l:
      differencelist.append(pow(elem-mean,2))
return sqrt(sum(differencelist)/len(differencelist))

答案 2 :(得分:0)

已经有一段时间了,因为我必须做标准偏差,所以你应该自己仔细检查数学部分(并且每个人都是正确的告诉你做numpy,除非你必须做这个以完成家庭作业或其他原因)但一些说明:

  1. Python有absolute value function

  2. 您可以执行for n in numbers而不是通过索引访问每个号码 - 更简单,更清晰。

  3. 看起来您的numbers数组首先存储所有值,然后您将添加从平均值到同一列表的每个数字的差异。要制作第二个列表,要么查看map功能,如果你想要超出范围。