मैं कोशिश कर रहा हूँ की गणना करने के लिए मानक विचलन में अजगर के उपयोग के बिना numpy
या किसी भी बाहरी पुस्तकालय के लिए छोड़कर math
. मैं प्राप्त करना चाहते हैं पर बेहतर लेखन एल्गोरिदम और कर रहा हूँ सिर्फ यह कर के रूप में एक बिट के 'होमवर्क' मैं सुधार के रूप में अपने अजगर कौशल. मेरा लक्ष्य है अनुवाद करने के लिए इस सूत्र में अजगर लेकिन हूँ नहीं मिल रहा है सही परिणाम.
मैं कर रहा हूँ की एक सरणी का उपयोग गति, जहां 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
.