Skip to content

Commit

Permalink
some small bug fix, especially the standard deviation algorithm
Browse files Browse the repository at this point in the history
  • Loading branch information
LeonMac committed Jun 16, 2019
1 parent 2d616f1 commit de80429
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 15 deletions.
22 changes: 14 additions & 8 deletions P102_roll_dice.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-

import random
#import numpy as np
import numpy as np
#import pandas as pd
from matplotlib import pyplot as plt

Expand All @@ -11,22 +11,28 @@ def random_dice_roll():


trials_list=[]
std_deviation=0.0
std_deviation_tmp=0.0

num_trials=1000
num_trials=100
for trial in range(num_trials):
trials_list.append (random_dice_roll())

avg=sum(trials_list)/float(num_trials)

print ('the trail list is shown as below:\n',trials_list)
print ('the avergae dice roll point = ',avg)

for trial in range(num_trials):
std_deviation+=(trials_list[trial]-avg)**2
std_deviation_tmp+=(trials_list[trial]-avg)**2

std_deviation=(std_deviation_tmp/(num_trials-1))**0.5

print ("\nnote: you shall be careful for the stdandard deviation calculation, bias (/n) or non-bias (/n-1)!!")
print ('my calculated stdandard deviation (non-bias,/n-1) = ',std_deviation)
print ('use numpy lib to calculate standard deviation directly (non-bias,/n-1) = ', np.std(trials_list, ddof=1))

std_deviation=std_deviation/(num_trials-1)

print (trials_list)
print (avg)
print (std_deviation)
# another version, calculate standard deviation for various data list.

'''
num_trials=range(100,1000,10)
Expand Down
14 changes: 7 additions & 7 deletions P38_data_sd_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

print ('\n')

sqrt_diff_list=[]
diff_squre_list=[]

num_items=len(temperature)
product=1.
Expand All @@ -27,18 +27,18 @@

for temp in temperature:
diff=temp-mean_temp
sqrt_diff=diff**2
sqrt_diff_list.append(sqrt_diff)
average_sqrt_diff=np.mean(sqrt_diff_list)
diff_squre=diff**2
diff_squre_list.append(diff_squre)
average_diff_squre=np.mean(diff_squre_list)
product*=temp

standard_deviation = np.sqrt(average_sqrt_diff)
standard_deviation = np.sqrt(average_diff_squre)
geometric_mean = product ** (1./num_items)

print ('Standard Deviation = ',standard_deviation)
print ('Standard Deviation (bias, /n) = ',standard_deviation)

print ('Geometric Mean = ',geometric_mean)

print ('=======method-2 to calculate standard deviation, using numpy directly =======')

print ('Standard Deviation = ',np.std(temperature))
print ('Standard Deviation (bias, /n) = ',np.std(temperature))

0 comments on commit de80429

Please sign in to comment.