是明智的使用Numba和Cython在一起吗?



我正在开发一个程序,它依赖于尽可能快地遍历数百万个数据点。

我打算将此程序转换为独立的exe,以便于使用和分发。

我一直在研究numba和cython作为尽可能加快我的程序的一种手段,但它们似乎都擅长不同的事情。

Numba有更多的限制,但它非常擅长遍历numpy数组,并且很容易实现,不需要太多思考。

它似乎平均也比Cython快,特别是当数据集很大的时候。至少从我读到的来看是这样的。

Cython比numba更难实现,但它是通用的,并且在大多数情况下几乎一样快。

但是我从来没有听说过有人把它们一起使用。

我想在方便和有用的时候使用Numba,而在其他地方使用Cython。

这是个坏主意吗?我错过什么了吗?

我想在方便和有用的时候使用Numba,而在其他地方使用Cython。

我想你会发现:

  1. 如果你需要从Numba调用Cython函数,@ead已经写了一个非常彻底的答案,详细说明了限制。基本上,它不能很好地看到Cython的def函数,但是有办法将cdefcpdef函数传递给它。

  2. 你不能在Cython代码中定义你的Numba函数。这是因为Numba查看函数的字节码,而cython编译的函数没有字节码。

有了这两个注意事项,我认为它们可以共存,因此根据任务进行选择和选择没有真正的问题。

相关内容

  • 没有找到相关文章

最新更新