为什么numpy本身"慢"?

leo*_*on 6 python performance numpy scientific-computing

鉴于这里线程

似乎numpy不是超快速计算的最理想选择.有没有人知道在使用numpy进行数值计算时我们必须注意哪些开销?

jan*_*neb 12

那么,取决于你想做什么.例如,对于对数值线性代数感兴趣的人来说,XOR几乎不相关(由于在下面使用优化的BLAS/LAPACK库,numpy非常快).

一般来说,从numpy获得良好性能背后的重要思想是一次性分摊解释器的成本.换句话说,将循环从python代码(慢)移动到numpy/BLAS/LAPACK/etc中某处的C/Fortran循环中.内部(快).如果您在该操作中成功(称为矢量化),性能通常会非常好.

当然,通过转储python解释器并使用C++代替,显然可以获得更好的性能.这种方法是否真的成功取决于你使用C++与numpy进行高性能编程有多好,以及你正在尝试做什么操作.