01 矢量化运算


在《PaddlePaddle深度学习实战》一书中,介绍了在Python中利用Numpy中的矩阵(矢量)运算所带来的速度增加。

▲ PaddlePaddle深度学习实战

下面程序来自于书中的给出的示例,显示了计算两个维度为1000000的矢量内积计算。

利用nympy中的dot运算,与直接通过循环运算,速度相差两个多数量级。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2020-11-10
#
# Note:
#============================================================from headm import *v1 = random.rand(1000000)
v2 = random.rand(1000000)
v = 0tic = time.time()
for i in range(1000000):v += v1[i] * v2[i]toc = time.time()
printf("v:%f, cost time:%f"%(v, (toc-tic)*1000))tic = time.time()
v = dot(v1,v2)
toc = time.time()
printf("v:%f, cost time:%f"%(v, (toc-tic)*1000))#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

运行的结果为:

v:250151.502867, cost time:553.031683
v:250151.502867, cost time:2.000332

两个运算之间相差近250倍。

值得注意的是后,这个运算比值在不同的计算机中,使用循环大体都在0.5秒左右,但是使用numpy的dot运算,则会有比较大的区别。

Python中将数据矢量化运算所带来的时间加快相关推荐

  1. python什么是矢量化运算?

    矢量化运算 Numpy数组不需要进行循环遍历,即可对每个元素执行批量的算术运算操作,这个过程叫做矢量化运算操作. 实现数组广播机制的条件是什么? 两个数组的某一维度等长,或其中一个数组是一维数组

  2. Python之数据规整化:清理、转换、合并、重塑

    Python之数据规整化:清理.转换.合并.重塑 1. 合并数据集 pandas.merge可根据一个或者多个不同DataFrame中的行连接起来. pandas.concat可以沿着一条轴将多个对象 ...

  3. python数据统计 矢量图_用python中的矢量化解决方案计算max draw down

    Maximum Drawdown是量化金融中常用的一种风险度量,用于评估所经历的最大负收益. 最近,我变得不耐烦的时间来计算最大下降使用我的循环方法.def max_dd_loop(returns): ...

  4. Anonympy——使用Python进行数据匿名化

    目录 介绍 背景 使用代码 兴趣点 GitHub存储库 介绍 我们的世界充斥着数字数据.2.5万亿字节是每天产生的数据量.大多数时候,数据是个人的和敏感的,与它相关的人不想透露它.个人和敏感数据的一些 ...

  5. python把文字矢量化_如何将点阵汉字矢量化 | indienova

    那么是不是点阵汉字就已经退出历史舞台了呢?并没有.现在街上能常常见到的简易 LED 屏,很多都还是用的点阵汉字.很多工控或者简易屏幕上,也都还在使用点阵汉字,这是因为同矢量字体相比,点阵汉字占用的空间 ...

  6. python二维向量运算,二维数组python中的矢量化计数

    像这样的东西呢,它是矢量化的,没有for循环:def moving_count(a, value, axis=0): """Return sequential count ...

  7. 如何在Python中将数据插入到Word模板中生成一份Word文档

    在一些的项目开发中,会有一些生成Word文件的操作,比如将获取到的一些数据添加到Word模板当中的相应的位置生成一份Word文档. 由于最近的Python项目当中需要将一些从服务器查出的数据添加到Wo ...

  8. python怎么处理数据标注_在python中将数据标记为敏感

    编辑 我提出了一个使用ctypes(反过来使用c)将内存归零的解决方案. import sys import ctypes def zerome(string): location = id(stri ...

  9. python dbf 修改_在Python中将数据写入dbf时出错

    dbf与大多数其他数据库包的不同之处在于,您不是直接使用dbf文件本身而是获得完全独立的数据结构(例如,一串行作为元组). 我发现自己遇到的问题是,当我一次更新多个字段时: record.name = ...

最新文章

  1. 分布式消息队列Kafka集群安装
  2. 彻底解决 gcr、quay、DockerHub 镜像下载难题!
  3. C语言数据结构(大话数据结构——笔记3)第五章:串(字符串)
  4. 云炬Android开发报错处理教程 Gradle下载超时please configure the proxy settings either in IDE or Gradle
  5. JSON学习笔记(一)- 语法
  6. different behavior dialog popup display no
  7. PhotoShop基础知识
  8. WDM驱动程序入门(3)——安装步骤
  9. 关于抓包出现TCP DUP ACK问题
  10. Ubantu下安装adobe flash player插件
  11. 集群起不来oracle,Oracle11g rac 集群无法启动分析及处理
  12. 海外观看2022卡塔尔世界杯中文直播攻略大全
  13. jitpack No version of NDK matched the requested
  14. 使用BS4爬取智联招聘
  15. 锂电池的充电电压和电流应该是多少
  16. 移动浏览器市场份额之争
  17. Tether是操纵市场的幕后黑手吗?
  18. Crash:reportSizeConfigurations ActivityRecord not found for Token xxx
  19. 测试液晶显示器的软件,tLCDtest(液晶屏幕测试软件)
  20. 用js写随机抽奖代码

热门文章

  1. Python实例浅谈之五Python守护进程和脚本单例运行
  2. 优化内核报错及解决方法
  3. 升级gcc后glibc报错
  4. crossdomain.xml用法
  5. 6款强大的jQuery插件 创建和加强网站布局
  6. json web token 实践登录以及校验码验证
  7. linux下新文件权限设置之umask的理解
  8. 【已解决】mysql连接出错:ERROR 1040 (HY000): Too many connections
  9. Oracle发布多语种虚拟机平台GraalVM 1.0
  10. 模板初步——定义模板