【发布时间】:2019-04-26 08:54:14
【问题描述】:
### import math
def mean(values):
return sum(values)*1.0/len(values)
def std():
pass
print(std())
def std(values):
length = len(values)
if length < 2:
return("Standard deviation requires at least two data points")
m = mean(values)
total_sum = 0
for i in range(length):
total_sum += (values[i]-m)**2
under_root = total_sum*1.0/length
return math.sqrt(under_root)
vals = [5]
stan_dev = std(vals)
print(stan_dev)
values = [1, 2, 3, 4, 5]
stan_dev = std(values)
print(stan_dev)
__________________________________________________________________________
lst = [3, 19, 21, 1435, 653342]
sum = reduce((lambda x, y: x +y), lst)
print (sum)
# list = [3, 19, 21, 1435, 653342]
我需要能够在不使用 sum 或 len 的情况下获得 stDev 我需要“解压”stDev ???
【问题讨论】:
-
您能否添加更多详细信息,说明您想要实现的目标、所需的输出等以及更正问题中的代码格式?
-
要计算标准偏差,您需要提取平方根。在 Python 中,
sqrt函数位于math模块中。如果您坚持这样做而不导入math,那么您将不得不编写自己的平方根函数。当您真正想要的只是标准偏差时,这有点高。 -
您可以获得 1/2 次方的平方根(因此无需数学导入)。
-
我可以使用数学中的平方根,只需要得到 sum 和 Length,而不使用 Len 来得到平均值,然后得到 st dev