【发布时间】:2021-12-03 16:48:53
【问题描述】:
我有一个问题,我试图返回数组中对象的计数在 1 个标准差以内。为了获得标准偏差,我创建了两个函数,但现在我无法添加/减去函数。我试图将函数转换为整数,但开始收到关于我的标准偏差是浮点数的错误。有什么更好的方法来完成这一切?
import numpy as np
import math
vac_nums=np.array([180, 172, 178, 185, 190, 195, 192, 200, 210, 190])
def variance():
n = len(vac_nums)
mean = sum(vac_nums)/n
deviations = [(x - mean) ** 2 for x in vac_nums]
variance = sum(deviations)/n
return variance
print(variance())
def stdev():
var = variance()
std_dev = math.sqrt(var)
return std_dev
print(stdev())
sum = 0
for x in vac_nums:
if np.array(x) >=(variance-stdev) and np.array(x) <=(variance+stdev):
sum += 1
print(sum)
【问题讨论】:
-
既然你使用
numpy,为什么不使用std_dev = np.std(vac_nums)? -
为什么要减去函数?这是没有意义的。也许您想减去函数返回的值?
variance() - stdev() -
另外,不要将变量命名为
sum,因为它会替换variance在循环中调用它时将使用的内置函数。 -
考虑您应该提供您的打印输出和完整的代码错误回溯,以获得minimal reproducible example
-
@not_speshal 道歉,我应该澄清一下。我实际上将把它输入到sololearn中来回答他们已经创建了一个数组的问题。我不能在他们的领域导入。我只导入了 numpy 来在 Visual Studio Code 中添加数组。
标签: python numpy standard-deviation