计算样本的标准偏差
Calculating standard deviation of a sample
这看起来有点混乱。当你需要计算std时,你可以很方便地使用np.std()
。 Std 是方差的平方根。然而,当我们计算样本的方差时,我们将它除以 n-1
。所以如果我们使用 np.std()
这不应该给我们一个正确的输出。
是否有另一种方法来计算样本的标准差,还是我们需要手动计算?
使用np.std()
时可以指定分母自由度。只需使用 ddof
参数:
np.std(x, ddof=1)
您可以在 docs
中阅读更多相关信息
您可以在执行 np.std()
时传递参数 ddof
a=[1,2,3,4,5]
vsum=0
for x in a:
vsum=vsum + (x - np.mean(a))**2
variance=vsum / (len(a) - 1)
print("Variance is {} and Actual STD Dev is {} ".format(variance,np.sqrt(variance)))
print("np.std is {} and np.std with parameter is {} ".format(np.std(a),np.std(a,ddof=1)))
ddof=1 的作用是使 numpy 使用 delta 自由度为 1
这看起来有点混乱。当你需要计算std时,你可以很方便地使用np.std()
。 Std 是方差的平方根。然而,当我们计算样本的方差时,我们将它除以 n-1
。所以如果我们使用 np.std()
这不应该给我们一个正确的输出。
是否有另一种方法来计算样本的标准差,还是我们需要手动计算?
使用np.std()
时可以指定分母自由度。只需使用 ddof
参数:
np.std(x, ddof=1)
您可以在 docs
中阅读更多相关信息您可以在执行 np.std()
时传递参数 ddofa=[1,2,3,4,5]
vsum=0
for x in a:
vsum=vsum + (x - np.mean(a))**2
variance=vsum / (len(a) - 1)
print("Variance is {} and Actual STD Dev is {} ".format(variance,np.sqrt(variance)))
print("np.std is {} and np.std with parameter is {} ".format(np.std(a),np.std(a,ddof=1)))
ddof=1 的作用是使 numpy 使用 delta 自由度为 1