十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先,普及一下pandas与numpy的区别:
创新互联建站是一家专注于成都网站制作、成都网站建设与策划设计,墨江网站建设哪家好?创新互联建站做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:墨江等地区。墨江做网站价格咨询:13518219792
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计算的标准差为样本标准差。
def fangcha(): a=float(raw_input("请输入a:")) b=float(raw_input("请输入b:")) c=float(raw_input("请输入C:")) d=(a+b+c)/3.0 e=((a-d)**2+(b-d)**2+(c-d)**2)/3.0 print "平均数是:%f方差是:%f" %(d,e) fangcha() Python2.7可用
std()函数就是初高中学的标准差 numpy.std()
求标准差的时候默认是除以 n 的,即是有偏的,np.std无偏样本标准差方式为加入参数 ddof = 1
有些Python小白对numpy中的常见函数不太了解,今天小编就整理出来分享给大家。
Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。
数组常用函数
1.where()按条件返回数组的索引值
2.take(a,index)从数组a中按照索引index取值
3.linspace(a,b,N)返回一个在(a,b)范围内均匀分布的数组,元素个数为N个
4.a.fill()将数组的所有元素以指定的值填充
5.diff(a)返回数组a相邻元素的差值构成的数组
6.sign(a)返回数组a的每个元素的正负符号
7.piecewise(a,[condlist],[funclist])数组a根据布尔型条件condlist返回对应元素结果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改变数组维度
a.ravel(),a.flatten():将数组a展平成一维数组
a.shape=(m,n),a.reshape(m,n):将数组a转换成m*n维数组
a.transpose,a.T转置数组a
数组组合
1.hstack((a,b)),concatenate((a,b),axis=1)将数组a,b沿水平方向组合
2.vstack((a,b)),concatenate((a,b),axis=0)将数组a,b沿竖直方向组合
3.row_stack((a,b))将数组a,b按行方向组合
4.column_stack((a,b))将数组a,b按列方向组合
数组分割
1.split(a,n,axis=0),vsplit(a,n)将数组a沿垂直方向分割成n个数组
2.split(a,n,axis=1),hsplit(a,n)将数组a沿水平方向分割成n个数组
数组修剪和压缩
1.a.clip(m,n)设置数组a的范围为(m,n),数组中大于n的元素设定为n,小于m的元素设定为m
2.a.compress()返回根据给定条件筛选后的数组
数组属性
1.a.dtype数组a的数据类型
2.a.shape数组a的维度
3.a.ndim数组a的维数
4.a.size数组a所含元素的总个数
5.a.itemsize数组a的元素在内存中所占的字节数
6.a.nbytes整个数组a所占的内存空间7.a.astype(int)转换a数组的类型为int型
数组计算
1.average(a,weights=v)对数组a以权重v进行加权平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)数组a的均值、最大值、最小值、中位数、方差、标准差
3.a.prod()数组a的所有元素的乘积
4.a.cumprod()数组a的元素的累积乘积
5.cov(a,b),corrcoef(a,b)数组a和b的协方差、相关系数
6.a.diagonal()查看矩阵a对角线上的元素7.a.trace()计算矩阵a的迹,即对角线元素之和
以上就是numpy中的常见函数。更多Python学习推荐:PyThon学习网教学中心。
python3.2中没有求预置标准差的函数,只能挂载外库或者自己写一个
不需任何外库
#样本标准差
def
stdDeviation(a):
l=len(a)
m=sum(a)/l
d=0
for
i
in
a:
d+=(i-m)**2
return
(d*(1/l))**0.5
a=[5,6,8,9]
print(stdDeviation(a))
========
1.5811388300841898
可以用numpy模块实现:
import numpy
def 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