使用numexpr加快多维数组numpy的算术运算
来源:互联网 发布:高中刷题软件 编辑:程序博客网 时间:2024/06/06 01:39
numpy是python为了科学计算而开发的支持多维的数组,
据说在numpy的基础上执行算术运算速度很快,
可是和numexpr比起来,要差得远了.
使用numexpr,比numpy的速度要加快数倍,甚至数十倍.
因此在执行大量预算和对大数组进行操作时,一定要使用numexpr.
下面还是看看例子吧,先看看numexpr是如何使用的:
numexpr接受字符串表达式即可,分析后立即计算
>>> import numpy as np >>> import numexpr as ne >>> a = np.arange(1e6) >>> b = np.arange(1e6) >>> ne.evaluate("a + 1") # 最简单的表达式 array([ 1.00000000e+00, 2.00000000e+00, 3.00000000e+00, ..., 9.99998000e+05, 9.99999000e+05, 1.00000000e+06]) >>> ne.evaluate('a*b-4.1*a > 2.5*b') # 稍微复杂一点的例子array([False, False, False, ..., True, True, True], dtype=bool)
下面的例子比较了numpy和numexpr运算时间
>>> timeit a**2 + b**2 + 2*a*b 10 loops, best of 3: 21.5 ms per loop # numexpr w/ 16 threads (default for 8-core, with hyperthreading) >>> timeit ne.evaluate("a**2 + b**2 + 2*a*b") 100 loops, best of 3: 2.14 ms per loop # 比NumPy快10.0倍>>> ne.set_num_threads(8) # using just 8 threads >>> timeit ne.evaluate("a**2 + b**2 + 2*a*b") 100 loops, best of 3: 3.15 ms per loop # 比NumPy快6.8倍>>> ne.set_num_threads(1) # using just 1 thread >>> timeit ne.evaluate("a**2 + b**2 + 2*a*b") 100 loops, best of 3: 7.58 ms per loop # 比NumPy快2.8倍
numexpr运算时间不是一般的快,
- 使用numexpr加快多维数组numpy的算术运算
- numpy多维数组的切片操作
- NumPy 创建多维数组
- numpy基础教程—算术运算
- Numpy - 多维数组(上)
- numpy基本用法多维数组
- 关于多维数组的运算问题
- numpy中多维数组的轴(axis)
- 【NumPy学习指南】day4 多维数组的切片和索引
- numpy.ndarray 交换多维数组(矩阵)的行/列
- numpy中多维数组的轴(axis)
- Chapter4-1 NumPy的ndarray:一种多维数组对象
- NumPy的ndArray——多维数组对象
- nditer —— numpy.ndarray 多维数组的迭代
- numpy中多维数组的轴(axis)
- 算术运算及数组
- c# 多维数组的使用
- c++ 多维数组 的使用
- SQL Server应用程序中的高级SQL注入(2)
- 获取系统时间(精确到微秒),驱动中KeQueryPerformanceCounter,Win32程序QueryPerformanceCounter
- 16 个JavaScript Web UI 库简介
- C++标准库
- android中SQLite数据库中用insert同时插入多条记录的方法和效率比较
- 使用numexpr加快多维数组numpy的算术运算
- LPC1768简述
- 使用stringstream转换类型
- 树状数组
- 关于RTP时间戳及多媒体通信同步的问题
- dialog module (5)屏幕上显示某个表的内容(Table Control)
- Facebook的网站框架LAMP
- VS2005下CLAPACK的安装(批注版)
- 前端必备:jQuery 1.7.1API手册