pandas操作的数据集是Series,本质上是列表与字典的混合,常用的数据形式为DataFrame;
numpy操作的数据集是数组或矩阵。
1、对数组求均值、方差、标准差
2、对矩阵求标准差
注意:在求标准差时需要注意几个问题:
1、在统计学中,标准差分为两种:
(1)总体标准差:标准差公式根号内除以n,是有偏的。
(2)样本标准差:标准差公式根号内除以n-1,是无偏的。
2、pandas与numpy在计算标准差时的区别
(1)numpy
在numpy中计算标准差时,括号内要指定ddof的值,ddof表示自由度,当ddof=0时计算的是总体标准差;当ddof=1时计算的是样本标准差,当不为ddof设置值时,其默认为总体标准差。
(2)pandas
在使用pandas计算标准差时,其与numpy的默认情况是相反的,在默认情况下,pandas计算的标准差为样本标准差。
借助numpy的向量运算来求:import numpy
narray=numpy.array(nlist)
sum1=narray.sum()
narray2=narray*narray
sum2=narray2.sum()
mean=sum1/N
var=sum2/N-mean**2
可以用numpy模块实现:
import numpydef cal_mean_std(sum_list_in):
# type: (list) -> tuple
N = sum_list_in.__len__()
narray = numpy.array(sum_list_in)
sum = narray.sum()
mean = sum / N
narray_dev = narray - mean
narray_dev = narray_dev * narray_dev
sum_dev = narray_dev.sum()
DEV = float(sum_dev) / float(N)
STDEV = numpy.math.sqrt(DEV)
print "mean:", mean, " DEV:", DEV, " STDEV:", STDEV
return mean, DEV, STDEV
均值为mean,方差为DEV,标准差是STDEV
传入数据是一个list:sum_list_in