I have a list for which I like to calculate sample variance. When I use numpy.var I get a different result from the function I defined.
Can someone please help me understand what I am missing?
my_ls = [227, 222, 218, 217, 225, 218, 216, 229, 228, 221]
def calc_mean(ls):
sum_tmp = 0
for i in ls:
sum_tmp = sum_tmp + i
return round(sum_tmp/len(ls), 2)
def calc_var(ls):
tmp_mean = calc_mean(ls)
tmp_sum = 0
for i in ls:
tmp_sum = tmp_sum + ((i - tmp_mean)**2)
return round(tmp_sum/(len(ls)-1), 2)
calc_var(my_ls)
>>> 23.66
np.var(my_ls)
>>> 21.29
23.66 is my desired value.