python numpy中std()和pandas中std()的区别

std()函数就是初高中学的标准差

计算得出的默认标准偏差类型在 numpy 的 .std() 和 pandas 的 .std() 函数之间是不同的。
默认情况下,numpy 计算的是总体标准偏差,ddof = 0。另一方面,pandas 计算的是样本标准偏差,ddof = 1。如果我们知道所有的分数,那么我们就有了总体——因此,要使用 pandas 进行归一化处理,我们需要将“ddof”设置为 0。

在统计学中,多年的经验总结出:

如是总体,标准差公式根号内除以 n,
如是样本,标准差公式根号内除以 (n-1),
因为我们大量接触的是样本,所以普遍使用根号内除以(n-1)。
公式意义 :所有数减去平均值,它的平方和除以数的个数(或个数减一),再把所得值开根号,就是1/2次方,得到的数就是这组数的标准差。


以上参考:https://blog.youkuaiyun.com/qq_38486203/article/details/84540260

 

numpy的scale就是 x-mean/std

import numpy as np

from  sklearn import preprocessing

data = np.array([[3, -1.5, 2, -5.4], [0, 4, -0.3, 2.1], [1, 3.3, -1.9, -4.3]])

print(data.mean(axis=0))

print(data.std(axis=0))

 

data_standardized = preprocessing.scale(data)

print(data_standardized)


‘’‘以第一列3,0,1为例,其均值为1.333,方差=sqrt((power(3-1.33,2)+power(0-1.33,2)+power(1-1.33,2))/3)=1.247’则标准化为(3-1.333)/1.247=1.3363,大概就是这么一回事情‘’‘


以上参考:https://www.jianshu.com/p/ab84f1a467c7

 

一个代码小片段帮助理解

#标准差标准化
import pandas as pd

datafile='f:/data/7/7.2/zscoredata.xls'   #需要进行标准化的数据文件;
zscoredfile='f:/data/7/7.2/tmp/zscoreddata.xls'  #标准差化后的数据存储路径文件;

#标准化处理 min是均值 std是标准差
data=pd.read_excel(datafile)

#numpy的scale就是 x-mean/std
data=(data-data.mean(axis=0))/(data.std(axis=0))
#关于axis=0或者1:https://www.cnblogs.com/nyist-/p/7998326.html

data.columns=['z'+i for i in data.columns]  #表头重命名

data.to_excel(zscoredfile,index=False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值