python中,自带列表功能和numpy列表生成、处理的时间对比案例

Python中,自带列表处理功能,后最近学习算法还有图片处理还有数据库处理过程中,都涉及到np来处理数据问题。

并且理由都是:numpy基于原始c语言编码,速度更快。

但是有多快并没有很直观的案例比较,因此今天我想做一个小的测试,对比一下这两者速度只差。


案例设计如下:

  1. 对比——python自己生成1亿个随机数 VS numpy生成1亿个随机数 消耗时间;
  2. 对比——python将这1亿个随机数列求和 VS numpy求和1亿个随机数的求和 消耗时间;

代码如下:

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
import random
import time
import numpy as np
np.random.seed(1234567890)

a=[]   #先来个空列表
t0=time.time() #记录初试时间
for i in range(100000000):   # 生成1亿随机数并加入列表a
    a.append(random.random())
t1=time.time()

c=np.random.rand(1,100000000)   # np生成1亿个随机数列表

t2=time.time()

sum1=sum(a)   #求和并记录时间
t3=time.time()

b=np.array(a)
t4=time.time()
sum3=np.sum(b)  # np求和并记录时间
t5=time.time()

print('py前十',a[:10],b.size,'\nnp前十',c[:10],c.size)
print('\n生成列表py法',t1-t0,
      '\n生成列表np法',t2-t1,
      '\n自动求和py法',t3-t2,
      '\n自动求和np法',t5-t4)

最终输出结果如下:

py前十 [0.7683654739743722, 0.7381577710473923, 0.3513443609071065, 0.12434379432894516, 0.8791934126798406, 0.28150967704486973, 0.6426082374249842, 0.14866248500922585, 0.288348992979241, 0.5910198377256598] 100000000 

np前十 [[0.61879477 0.59162363 0.88868359 ... 0.10314204 0.14649676 0.90681355]] 100000000

生成列表py法 22.52289891242981 
生成列表np法 1.2723863124847412 
自动求和py法 0.4832890033721924 
自动求和np法 0.13936996459960938

可以看到,都是1亿个数据,生成列表python跑了20余倍np法;求和时间也是np法的三倍。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MINUS大大

你的鼓励是我写下去的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值