但如果想要在不使用低级语言(如 CPython、Rust 等)实现扩展的前提下实现一个新的算法时,该如何做呢?
对于某些特定的、尤其是针对数组的计算场景,Numba 可以显著加快代码的运行速度。...在本篇文章中,我们会谈及以下几方面:
为什么 有时候单独使用 Numpy 是不够的
Numba 的基础使用方式
Numba 是如何在很高的层次上来对你的代码运行造成影响的
Numpy ”爱莫能助“的时刻...假设你想要将一个非常大的数组转变为按递增顺序排序:很好理解,就是将元素按值的大小升序排列,如:
[1, 2, 1, 3, 3, 5, 4, 6] → [1, 2, 2, 3, 3, 5, 5, 6]...但对于上面这个场景(python 中的循环),就会暴露出一个问题:我们会失去 Numpy 得天独厚的性能优势。...使用 Numba 你可以做到:
使用 python 和拥有更快编译速度的解释器运行同一份代码
简单快速地迭代算法
Numba 首先会解析代码,然后根据数据的输入类型以即时的方式编译它们。