考虑以下代码:
dog = np.random.rand(10, 10)
frog = pd.DataFrame(dog, columns = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])
from sklearn.preprocessing import StandardScaler
slog = StandardScaler()
mog = slog.fit_transform(frog.values)
frog[frog.columns] = mog好的,现在我们应该有一个数据帧,它的值应该是标准的缩放数组。但是:
frog.describe()给予:
[![describe the dataframe][1]][1]注意,标准差为1.05
而
np.std(mog, axis=0)给出了预期:
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])怎么回事?
发布于 2020-05-24 20:09:06
由标准差方法计算的describe使用样本标准差,而StandardScaler使用总体标准差。两者之间唯一的区别是,与平均值的平方差之和是否除以n-1 (对于样本st )。(发展)或者n (流行音乐)。性病。)。
numpy.std计算种群st.dev.默认情况下,但是您可以使用它来计算示例st。dev.通过添加参数ddof=1,结果与describe计算的值一致。
In [54]: np.std(mog, axis=0, ddof=1)
Out[54]:
array([1.05409255, 1.05409255, 1.05409255, 1.05409255, 1.05409255,
1.05409255, 1.05409255, 1.05409255, 1.05409255, 1.05409255])https://stackoverflow.com/questions/61991632
复制相似问题