问题标签 [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.

0 投票
2 回答
2853 浏览

python - 与 CPython 相比,Numba 和 Cython 并没有显着提高性能,也许我使用不正确?

大编辑:

=================

为了清楚起见,我将删除旧结果并用更新的结果替换它。问题还是一样:我是否正确使用了 Cython 和 Numba,可以对代码进行哪些改进?(我有一个更新、更简单的临时 IPython 笔记本,这里有所有代码和结果)

1)

我想我明白了为什么 Cython、Numba 和 CPython 之间最初没有区别:这是因为我喂了它们

numpy 数组作为输入:

而不是列表:

使用 Numpy 数组作为数据输入的基准测试

在此处输入图像描述

使用 Python 列表作为输入进行基准测试

在此处输入图像描述

2)

我用zip()显式循环替换了该函数,但是,它并没有太大的区别。代码将是:

CPython

赛通

努巴

0 投票
1 回答
3458 浏览

python - Python Numba jit NotImplementedError 列表理解

我想加快计算使用 Numba 执行列表理解的公式。

但是我得到一个 NotImplementedError。不知道为什么。

0 投票
1 回答
16638 浏览

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 获得的值矩阵是否保证不是数据的副本。

任何帮助是极大的赞赏。

0 投票
1 回答
1493 浏览

python - 长尾小鹦鹉与 Numba 有何不同?因为我没有看到一些 NumPy 表达式有任何改进

我想知道是否有人知道鹦鹉和 Numba jit 之间的一些主要区别?我很好奇,因为我将 Numexpr 与 Numba 和 parakeet 进行比较,并且对于这个特定的表达式(我希望在 Numexpr 上表现得非常好,因为它是其文档中提到的那个)

所以结果是

在此处输入图像描述

以及我测试的功能(通过 timeit - 每个功能至少 3 次重复和 10 次循环)

如果您想在您的机器上仔细检查结果,您也可以使用IPython nb 。

如果有人想知道 Numba 是否安装正确......我想是的,它在我之前的基准测试中按预期执行:

在此处输入图像描述

0 投票
1 回答
188 浏览

python - 使用 @autojit 的 Numba 自由变量

我正在使用 numba @autojit 装饰器。以下错误是什么意思?

什么是免费变量?

0 投票
2 回答
1557 浏览

python - 如何在 python 2.7 中使用 numba jit 编译器提高 math.sqrt() 的速度

我有一个复杂的函数,它执行无法向量化的数学运算。我发现使用 NUMBA jit 编译器实际上会降低性能。这可能是因为我在这个函数中使用了对 python math.sqrt 的调用。如何强制 NUMBA 将对 python math.sqrt 的调用替换为对 sqrt 的更快的 C 调用?

——问候凯斯

0 投票
1 回答
3415 浏览

numpy - numba:就地排序数组

Numba 具有通过 JIT 编译加速循环的惊人能力。然而,关键的转折是,当使用 numpy 时,不允许创建任何新数组。幸运的是,大多数 numpy 函数都包含一个可选out参数,用于将输出写入 -- except numpy.sort。最明显的替代方案是numpy.ndarray.sort,它已经到位,

但这无法编译,

没有重新实现排序算法,有没有办法在 JIT 编译的 numba 循环中对 numpy 数组进行排序?

0 投票
1 回答
840 浏览

python - 尝试使用 NumbaPro 的 @vectorize 装饰器时出错

NumbaPro 的 @vectorize 装饰器似乎是一种利用多核处理器进行数值计算的巧妙方法。不幸的是,以下相当小的示例会产生错误:

上面的代码使用 @jit 装饰器可以正常工作,但尝试 @vectorize 会出现以下错误:

显然,装饰器参数存在问题,但类型签名对我来说看起来是正确的。是否有一些我不遵守的额外限制?

编辑:修改代码以避免在装饰函数中使用 numpy.zeros 和 numpy.pi 根据下面 Bakuriu 的有用评论,并相应地调整收到的错误。

0 投票
1 回答
825 浏览

python - 使用 numba guvectorize 列出索引错误

我是 numba / numbapro 的新手。我试图运行其中一个示例,这是一个关于使用 guvectorize 的广义 Ufuncs 的示例:

(这里是示例的链接):http ://docs.continuum.io/numbapro/quickstart.html#numbapro-guvectorize

我收到此错误:

我没有找到比此链接更多的文档。难道我做错了什么?我发现当签名中有一个空括号时会发生这种情况。我在 linux 机器上运行它,我的 numbapro 版本是 0.14.1

提前致谢,

亚历克斯

0 投票
1 回答
140 浏览

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 获得)如下