Reputation: 11
I'm trying to calculate standard deviation based on values from a list, but I am receiving errors:
def mean(list):
return sum(list)/len(list)
std_deviation = (sum([(list - mean(list)) ** 2 for number in list]) / (len(list) - 1)**(1/2)
print(std_deviation)
Upvotes: 1
Views: 1956
Reputation: 11
MyList = [1,2,3,4,5]
mean = sum(MyList)/len(MyList)
stddev = sum([((i - mean)**2/len(MyList))**0.5 for i in MyList])
print(stddev)
Upvotes: 0
Reputation: 27283
Your parantheses are set wrong, and instead of list - mean(list)
, you'll want number - mean(list)
Fixed version (without the name list
, because it is a builtin):
def mean(values):
return sum(values)/len(values)
my_list = [1,2,2,3,4,5,5,8]
std_deviation = (1/(len(my_list) - 1) * sum((number - mean(my_list))**2 for number in my_list))**.5
print(std_deviation) # prints 2.2519832529192065
Upvotes: 1