问题标签 [numba]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 与 CPython 相比,Numba 和 Cython 并没有显着提高性能,也许我使用不正确?
大编辑:
=================
为了清楚起见,我将删除旧结果并用更新的结果替换它。问题还是一样:我是否正确使用了 Cython 和 Numba,可以对代码进行哪些改进?(我有一个更新、更简单的临时 IPython 笔记本,这里有所有代码和结果)
1)
我想我明白了为什么 Cython、Numba 和 CPython 之间最初没有区别:这是因为我喂了它们
numpy 数组作为输入:
而不是列表:
使用 Numpy 数组作为数据输入的基准测试
使用 Python 列表作为输入进行基准测试
2)
我用zip()
显式循环替换了该函数,但是,它并没有太大的区别。代码将是:
CPython
赛通
努巴
python - Python Numba jit NotImplementedError 列表理解
我想加快计算使用 Numba 执行列表理解的公式。
但是我得到一个 NotImplementedError。不知道为什么。
python - 使用 Numba 处理 pandas DataFrame 时间序列的有效方法
我有一个包含 1,500,000 行的 DataFrame。这是我从 QuantQuote.com 购买的一分钟级股市数据。(开盘价、最高价、最低价、收盘价、成交量)。我正在尝试对股市交易策略进行一些自制的回测。处理事务的直接 python 代码太慢了,我想尝试使用 numba 来加快速度。问题是numba 似乎不适用于 pandas 函数。
谷歌搜索发现关于使用 numba 和 pandas 的信息令人惊讶地缺乏。这让我想知道我是否在考虑它时犯了一个错误。
我的设置是 Numba 0.13.0-1,Pandas 0.13.1-1。Windows 7,带有 PTVS 的 MS VS2013,Python 2.7,Enthought Canopy
我现有的 Python+Pandas 内循环具有以下一般结构
- 计算“指标”列,(使用 pd.ewma、pd.rolling_max、pd.rolling_min 等)
- 计算预定事件的“事件”列,例如移动平均线交叉、新高等。
然后我使用 DataFrame.iterrows 来处理 DataFrame。
我尝试了各种优化,但仍然没有我想要的那么快。优化导致错误。
我想使用 numba 来处理行。是否有解决此问题的首选方法?
因为我的 DataFrame 实际上只是一个浮点矩形,所以我正在考虑使用 DataFrame.values 之类的东西来访问数据,然后编写一系列使用 numba 访问行的函数。但这会删除所有时间戳,我认为这不是可逆操作。我不确定我从 DataFrame.values 获得的值矩阵是否保证不是数据的副本。
任何帮助是极大的赞赏。
python - 长尾小鹦鹉与 Numba 有何不同?因为我没有看到一些 NumPy 表达式有任何改进
我想知道是否有人知道鹦鹉和 Numba jit 之间的一些主要区别?我很好奇,因为我将 Numexpr 与 Numba 和 parakeet 进行比较,并且对于这个特定的表达式(我希望在 Numexpr 上表现得非常好,因为它是其文档中提到的那个)
所以结果是
以及我测试的功能(通过 timeit - 每个功能至少 3 次重复和 10 次循环)
如果您想在您的机器上仔细检查结果,您也可以使用IPython nb 。
如果有人想知道 Numba 是否安装正确......我想是的,它在我之前的基准测试中按预期执行:
python - 使用 @autojit 的 Numba 自由变量
我正在使用 numba @autojit 装饰器。以下错误是什么意思?
什么是免费变量?
python - 如何在 python 2.7 中使用 numba jit 编译器提高 math.sqrt() 的速度
我有一个复杂的函数,它执行无法向量化的数学运算。我发现使用 NUMBA jit 编译器实际上会降低性能。这可能是因为我在这个函数中使用了对 python math.sqrt 的调用。如何强制 NUMBA 将对 python math.sqrt 的调用替换为对 sqrt 的更快的 C 调用?
——问候凯斯
numpy - numba:就地排序数组
Numba 具有通过 JIT 编译加速循环的惊人能力。然而,关键的转折是,当使用 numpy 时,不允许创建任何新数组。幸运的是,大多数 numpy 函数都包含一个可选out
参数,用于将输出写入 -- except numpy.sort
。最明显的替代方案是numpy.ndarray.sort
,它已经到位,
但这无法编译,
没有重新实现排序算法,有没有办法在 JIT 编译的 numba 循环中对 numpy 数组进行排序?
python - 尝试使用 NumbaPro 的 @vectorize 装饰器时出错
NumbaPro 的 @vectorize 装饰器似乎是一种利用多核处理器进行数值计算的巧妙方法。不幸的是,以下相当小的示例会产生错误:
上面的代码使用 @jit 装饰器可以正常工作,但尝试 @vectorize 会出现以下错误:
显然,装饰器参数存在问题,但类型签名对我来说看起来是正确的。是否有一些我不遵守的额外限制?
编辑:修改代码以避免在装饰函数中使用 numpy.zeros 和 numpy.pi 根据下面 Bakuriu 的有用评论,并相应地调整收到的错误。
python - 使用 numba guvectorize 列出索引错误
我是 numba / numbapro 的新手。我试图运行其中一个示例,这是一个关于使用 guvectorize 的广义 Ufuncs 的示例:
(这里是示例的链接):http ://docs.continuum.io/numbapro/quickstart.html#numbapro-guvectorize
我收到此错误:
我没有找到比此链接更多的文档。难道我做错了什么?我发现当签名中有一个空括号时会发生这种情况。我在 linux 机器上运行它,我的 numbapro 版本是 0.14.1
提前致谢,
亚历克斯
python - Numba 中的乘法函数比 CPython 慢
我在python中编写了以下代码
并得到以下结果
为什么 CPython 的速度是 Numba 的 2 倍以上?这是在带有 LLVM 3.2 的 OSX 10.9.3 上的 Python 2.7.7 中
如果有帮助,llvm 转储(使用 numba --annotate --llvmp-dump main.py 获得)如下