2014-10-09 64 views
0

我在计算表中列出的Python中的标准差时遇到了问题。我能够得到'总体'标准偏差,但是当我尝试用n-1除以样本标准偏差时,我得到了一个数学领域错误。这里是我的代码:带标准差的数学域错误

# Row standard deviation 
for i in range(ROWS): 
    total = 0 
    avg = 0 
    sum2 = 0 
    sum3 = 0 
    stdDev = 0 
    for j in range(COLUMNS): 
     total = float(total + array[i][j]) 
     avg = total/len(array[0]) 
     sum2 = sum2 + (array[i][j])**2 
     stdDev = sqrt((sum2/(len(array[0])) - (avg*avg))) 
    print(stdDev) 

回答

0

你正在做一个负数,这math不能处理的平方根。

>>> math.sqrt(-1) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: math domain error