python向量化与for循环耗时对比分析
目录
- 向量化与for循环耗时对比
- 向量化数据的相比于for循环的优势
向量化与for循环耗时对比
深度学习中,可采用向量化替代for循环,优化耗时问题
对比例程如下,参考Andrew NG的课程笔记
import time import numpy as np a = np.random.rand(1000000) b = np.random.rand(1000000) tic = time.time() c = np.dot(a,b) toc = time.time() print(c) print("Vectorized version: " , str(1000*(toc-tic)) + "ms") c = 0 tic1 = time.time() for i in range(1000000): c += a[i]*b[i] toc1 = time.time() print(c) print("For loop version: " , str(1000*(toc1-tic1)) + "ms")
处理百万数据,耗时相差400多倍。
效果图:
向量化数据的相比于for循环的优势
例子
import numpy as np import time a = np.random.rand(1000000) b = np.random.rand(1000000) tic = time.time() c = np.dot(a,b) toc = time.time() print print(“vectorized version:” + str((toc-tic))+“s”) c1 = 0 tic = time.time() for i in range(1000000): c1 += a[i]*b[i] toc = time.time() print(c1) print(“Nonvectorized version:” + str(toc-tic)+“s”)
结果
250487.97870397285
vectorized version:0.002000093460083008s
250487.9787039739
Nonvectorized version:0.957054615020752s
可以看出向量化后执行时间比使用for循环快478倍
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python map比for循环快在哪
实验结论 如果需要在循环结束后获得结果,推荐列表解析: 如果不需要结果,直接使用for循环, 列表解析可以备选; 除了追求代码优雅和特定规定情境,不建议使用map 如果不需要返回结果 这里有三个process, 每个任务将通过增加循环提高时间复杂度 def process1(val, type=None): chr(val % 123) def process2(val, type): if type == "list": [process1(_) for _ in range(val
-
Python 实现循环最快方式(for、while 等速度对比)
文章转自微信公众号-Python之禅 众所周知,Python 不是一种执行效率较高的语言.此外在任何语言中,循环都是一种非常消耗时间的操作.假如任意一种简单的单步操作耗费的时间为 1 个单位,将此操作重复执行上万次,最终耗费的时间也将增长上万倍. while 和 for 是 Python 中常用的两种实现循环的关键字,它们的运行效率实际上是有差距的. 比如下面的测试代码: import timeit def while_loop(n=100_000_000): i = 0 s =
-
Python2与python3中 for 循环语句基础与实例分析
下面的代码中python2与python3的print使用区别,大家注意一下.python3需要加()才行. 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) 流程图: 实例: #!/usr/bin/python # -*- coding: UTF-8 -*- for letter in 'jb51.net': # 第一个实例 print '当前字母 :', letter fruits = ['banana', 'app
-
python向量化与for循环耗时对比分析
目录 向量化与for循环耗时对比 向量化数据的相比于for循环的优势 向量化与for循环耗时对比 深度学习中,可采用向量化替代for循环,优化耗时问题 对比例程如下,参考Andrew NG的课程笔记 import time import numpy as np a = np.random.rand(1000000) b = np.random.rand(1000000) tic = time.time() c = np.dot(a,b) toc = time.time() print(c) pr
-
python:HDF和CSV存储优劣对比分析
小数据用csv,大数据用h5 结论1:几百KB以上的数据都用h5比较好 结论2:几KB的数据h5反而很慢 程序 import pandas as pd import numpy as np from wja.wja_tool import test_time as tt from wja import wja_tool as tool df = tool.generate_sampleDF(row, col) tt().run() df.to_csv('try.csv') tt().end()
-
Python判断值是否在list或set中的性能对比分析
本文实例对比分析了Python判断值是否在list或set中的执行性能.分享给大家供大家参考,具体如下: 判断值是否在set集合中的速度明显要比list快的多, 因为查找set用到了hash,时间在O(1)级别. 假设listA有100w个元素,setA=set(listA)即setA为listA转换之后的集合. 以下做个简单的对比: for i in xrange(0, 5000000): if i in listA: pass for i in xrange(0, 5000000): if
-
Python判断和循环语句的分析与应用
目录 一.条件判断语句 1.单纯的if语句 2.if else语句 3.if elif else语句 二.循环语句 while循环语句 while语句 while else语句 for循环语句 三.break 和 continue break continue 九九乘法表 总结 一.条件判断语句 条件判断语句主要就三个关键字:if .elif.else 这三个关键字可以有多种不同的组合. 1.单纯的if语句 只有一个 if 关键字的时候,需要满足 if 后面的条件才会执行语句块. if True
-
python中lambda与def用法对比实例分析
本文实例对比分析了python中lambda与def的用法.分享给大家供大家参考.具体分析如下: 1.lambda用来创建匿名函数,不同于def(def创建的函数都是有名字的). 2.lambda不会将结果赋给一个标识符,而def会将函数结果赋给一个标识符. 3.lambda是一个表达式,而def是一个语句 示例程序: >>> f1 = lambda x,y,z: x*2+y+z # lambda带有多个参数 >>> print f1(3,2,1) 9 >>
-
Python自动化运维_文件内容差异对比分析
模块:difflib 安装:Python版本大于等于2.3系统自带 功能:对比文本之间的差异,而且支持输出可读性比较强的HTML文档,与Linux中的diff命令比较相似. 两个字符串的差异对比: #import difflib #text1=''' #hello world. #how are you. #nice to meet you. #''' #text1_lines=text1.splitlines() # 以行进行分割,便于进行对比 #text2=''' #Hello World.
-
python中in在list和dict中查找效率的对比分析
首先给一个简单的例子,测测list和dict查找的时间: import time query_lst = [-60000,-6000,-600,-60,-6,0,6,60,600,6000,60000] lst = [] dic = {} for i in range(100000000): lst.append(i) dic[i] = 1 start = time.time() for v in query_lst: if v in lst: continue end1 = time.time
-
Go/Python/Erlang编程语言对比分析及示例代码
本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉. Go的很多语言特性借鉴与它的三个祖先:C,Pascal和CSP.Go的语法.数据类型.控制流等继承于C,Go的包.面对对象等思想来源于Pascal分支,而Go最大的语言特色,基于管道通信的协程并发模型,则借鉴于CSP分支. Go/Python/Erlang语言特性对比 如<编程语言与范式>一文所说,不管语言如何层出不穷
-
Python和Java的语法对比分析语法简洁上python的确完美胜出
Python是一种广泛使用的解释型.高级编程.通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年.可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP.Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词).相比于C++或Java,Python让开发者能够用更少的代码表达想法.不管是小型还是大型程序,该语言都试图让程序的结构清晰明了. Java是一种广泛使用的计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广
-
python字符串切割:str.split()与re.split()的对比分析
1.str.split不支持正则及多个切割符号,不感知空格的数量,比如用空格切割,会出现下面情况. >>> s1="aa bb cc" >>> s1.split(' ') ['aa', 'bb', '', 'cc'] 因此split只适合简单的字符分割 2.re.split,支持正则及多个字符切割 >>> print line abc aa;bb,cc | dd(xx).xxx 12.12' xxxx 按空格切 >>&
随机推荐
- 正则匹配密码只能是数字和字母组合字符串功能【php与js实现】
- 利用JAVASCRIPT控制MEDIA PLAYER的功能实现
- 加密你的Access数据库asp打开方法
- JS面向对象编程详解
- Javascript delete 引用类型对象
- 匹配任意字符的正则表达式写法
- bat得到文件大小的代码
- JavaWeb搭建网上图书商城毕业设计
- JS+CSS实现滑动切换tab菜单效果
- ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
- PHP Pear 安装及使用
- php实现微信发红包
- php中JSON的使用与转换
- 基于Spring中的线程池和定时任务功能解析
- php修改文件上传限制方法汇总
- 全面解析Bootstrap排版使用方法(文字样式)
- 原生JS操作网页给p元素添加onclick事件及表格隔行变色
- 使用ajax异步提交表单的几种方法总结
- centos7安装mysql5.6的方法
- Nginx中if语句的判断条件与多条件判断详解