Pyt*_*ous 5 python numpy numba
我经常使用 Numba 来加速许多无法矢量化的循环,否则会非常慢。我的问题是:
Numba 函数可以创建 numpy 数组吗?我还没有找到办法:像 np.zeros 这样的函数在 Numba 中不起作用。我现在要做的是在 Numba 外部创建空数组(用零或 NaN 初始化)并将它们传递给我的 Numba 函数,然后该函数根据循环的计算来填充它们。
array2 = array1,但 array2 成为对 array1 的引用(更改一个会更改另一个)。myinput.input_1= foo1
myinput.input_2 = foo2
我的输出 = 我的函数(我的输入)
当我有 20 个输入和 20 个输出时,这很方便。Numba 可以支持这样的事情吗?
Numba 正在积极开发中,因此您问题的答案取决于版本。在 Numba >0.19 中,您可以在nopython模式下创建 numpy 数组。所有受支持的 numpy 结构均列于:
http://numba.pydata.org/numba-doc/0.20.0/reference/numpysupported.html
arr.copy()至少在 0.20 模式中也受支持nopython(我检查过)。
就传入包含数组作为属性的对象而言,您可以在对象模式下执行此操作nopython=False,但在模式下不起作用nopython。然后你必须检查你获得了什么样的加速。在这种情况下,Numba 或许能够进行一些后续的循环提升。
我的建议是,如果可能的话,保持最新的 Numba 版本。他们添加了很多功能,根据我的经验,也修复了很多错误。
| 归档时间: |
|
| 查看次数: |
7564 次 |
| 最近记录: |