python向量化与for循环耗时对比分析
作者:Nani_xiao 发布时间:2023-12-21 14:14:59
标签:python,向量化,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倍
来源:https://blog.csdn.net/xiao_lxl/article/details/78134537


猜你喜欢
- 编写 models.py 文件from django.db import models# Create your models here.c
- MySQL出错代码列表:1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库
- 导言到目前为止的讨论编辑DataList的教程里,没有包含任何验证用户的输入,即使是用户非法输入— 遗漏了product的name或者负的p
- 如果我们的web应用有大量的异步请求,而这些异步请求是在web服务器认证的情况下,那当我们请求发生在服务器认证失效下,服务器自动302到登录
- 本文实例讲述了Python面向对象封装操作。分享给大家供大家参考,具体如下:目标封装小明爱跑步存放家具01. 封装封装 是面向对象编程的一大
- 注意:这种方法十分受光线变化影响自己在家拿着手机瞎晃的成果图:源代码:# -*- coding: utf-8 -*- ""
- 编写Python SDK代码工程目录结构├──── easyhttp
- 中文繁体、简体的差异,在NPL中类似英文中的大小写,但又比大小写更为复杂,比如同样为繁体字,大陆、香港和台湾又不一样。先前写过一篇中文繁简转
- Python中内置了一些与时间处理相关的库,如time、datatime和calendar库。其中time库是Python中处理时间的标准库
- 本文实例讲述了django框架model orM使用字典作为参数,保存数据的方法。分享给大家供大家参考,具体如下:假设有一个字典,里面已经有
- Session和Cookie在Web开发中,Session和Cookie是常见的两种技术,它们用于在客户端和服务器端之间传递数据。Sessi
- 目录一、scrapy 分析1. 解析函数或数据入库出错,不会重试,会造成一定的数据丢失2. 运行方式,需借助命令行,不方便调试3. 入库 p
- 为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程、方法发现总结得不是很全,这里总结一下,
- 本文实例讲述了JavaScript观察者模式(publish/subscribe)原理与实现方法。分享给大家供大家参考,具体如下:观察者模式
- 前言本文介绍的主要内容是 Redux-Toolkit 在 React + TypeScript 大型应用中的实践,主要解决的问题是使用 cr
- 1.SQL Server2019安装包下载1.1进入官网SQL Server 20191.2下载安装包1点击Continue2.填写个人信息
- 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割
- 第1章 新建工程和创建app新建工程和创建app就不用贴出来了,我这里是测试图片上传的功能能否实现,所以项目都是新的,正常在以有的app下就
- 目录 一个简单的实现使用BSF(宽度优先搜索)进行实现使用DFA(Deterministic Finite Automaton)进
- websocket在vue2中的封装使用先说需求: 页面中有websocket连接,进入的时候发送参数到后端,后端发送消息, 离开页面时发送