这是我的代码:
import numpy as np
print(np.std(np.array([0,1])))
它产生了0.5
我相信这是不正确的。我做错了什么?
这是我的代码:
import numpy as np
print(np.std(np.array([0,1])))
它产生了0.5
我相信这是不正确的。我做错了什么?
默认情况下,numpy.std
返回总体标准差,因此 np.std([0,1])
正确报告为 0.5
。如果您正在寻找样本标准差,则可以向 std()
提供可选的 ddof
参数:
>>> np.std([0, 1], ddof=1)
0.70710678118654757
ddof
修改了样本数减去平均值的平方和的除数。除数为N - ddof
,其中默认的ddof
是0
,这也可以从您的结果中看出。
std = RMS(data - mean)
。在这种情况下:std = sqrt((0.5^2 + 0.5^2) / 2) = sqrt(0.25) = 0.5
。 - Mad Physicistddof
设置为1,以获得总体标准差:http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html - Mad Physicist