
scikit-
learn使用np.std,默认情况下是人口标准差(其中平方差的总和除以观察数),而pandas使用样本标准差(其中分母是观察数-1)(请参阅维基百科的标准差文章)。这是对总体标准偏差进行无偏估计并由自由度(
ddof)确定的校正因子。因此,默认情况下,numpy和scikit-
learn的计算使用,
ddof=0而pandas使用
ddof=1(docs)。
Dataframe.std(axis = None,skipna = None,level = None,ddof = 1,numeric_only =
None,** kwargs)返回要求轴上的样品标准偏差。
默认情况下由N-1标准化。可以使用ddof参数更改
如果您将熊猫版本更改为:
df_standardized_manual = (df - df.mean()) / df.std(ddof=0)
差异实际上为零:
Alcohol Malic acidAsh Alcalinity of ash Magnesium0 -8.215650e-15 -5.551115e-16 3.191891e-15 0.000000e+00 2.220446e-161 -8.715251e-15 -4.996004e-16 3.441691e-15 0.000000e+00 0.000000e+002 -8.715251e-15 -3.955170e-16 2.886580e-15 -5.551115e-17 1.387779e-173 -8.437695e-15 -4.440892e-16 3.164136e-15 -1.110223e-16 1.110223e-164 -8.659740e-15 -3.330669e-16 2.886580e-15 5.551115e-17 2.220446e-16
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)