python计算均值方差

用Python求均值与方差,可以自己写,也可以借助于numpy,不过到底哪个快一点呢?

我做了个实验,首先生成9百万个样本:

nlist=range(0,9000000)
nlist=[float(i)/1000000 for i in nlist]
N=len(nlist)

第二行是为了让样本小一点,否则从1加到9百万会溢出的。

自己实现,遍历数组来求均值方差:

sum1=0.0
sum2=0.0
for i in range(N):
    sum1+=nlist[i]
    sum2+=nlist[i]**2
mean=sum1/N
var=sum2/N-mean**2

用时5.3s

借助numpy的向量运算来求:

import numpy
narray=numpy.array(nlist)
sum1=narray.sum()
narray2=narray*narray
sum2=narray2.sum()
mean=sum1/N
var=sum2/N-mean**2

用时1.0s

结论:还是用numpy吧~毕竟针对性优化过就是不一样~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值