하는 표준 편차를 계산 하에서는 파이썬은 사용하지 않고 numpy
또는 외부 라이브러리를 제외한 math
. 을 얻으려면 더 잘 쓰는 알고리즘과 그냥 이 일로"숙제"내가 내 python 능력입니다. 나의 목표는 번역 이 수식 으로 python 지 못하고 올바른 결과입니다.
나의 배열을 사용하여 속도 speeds = [86,87,88,86,87,85,86]
을 실행할 때:
std_dev = numpy.std(speeds)
print(std_dev)
을 얻을:0.903507902905. 그러나 나는 원하지 않에 의존하 numpy. 그래서...
내 구현은 다음과 같습니다:
import math
speeds = [86,87,88,86,87,85,86]
def get_mean(array):
sum = 0
for i in array:
sum = sum + i
mean = sum/len(array)
return mean
def get_std_dev(array):
# get mu
mean = get_mean(array)
# (x[i] - mu)**2
for i in array:
array = (i - mean) ** 2
return array
sum_sqr_diff = 0
# get sigma
for i in array:
sum_sqr_diff = sum_sqr_diff + i
return sum_sqr_diff
# get mean of squared differences
variance = 1/len(array)
mean_sqr_diff = (variance * sum_sqr_diff)
std_dev = math.sqrt(mean_sqr_diff)
return std_dev
std_dev = get_std_dev(speeds)
print(std_dev)
지금 실행할 때:
std_dev = get_std_dev(speeds)
print(std_dev)
을 얻을: [0]
하지만 난 기대 0.903507902905
나는 무엇을 놓치까요?
1.0
.