繁体   English   中英

用Cython遍历Numpy数组

[英]Loop over a Numpy array with Cython

ab为两个长度为1024的numpy.float数组,定义为

cdef numpy.ndarray a
cdef numpy.ndarray b

我注意到:

cdef int i
for i in range(1024):
    b[i] += a[i]

比:

b += a 

为什么?

我真的需要能够手动循环遍历数组。

如果您告诉Cython ab的数据类型和维数,则差异会更小:

cdef numpy.ndarray[np.float64_t, ndim=1] a, b

尽管差异会更小,但您不会击败b += a因为这是使用NumPy的SIMD增强功能(该功能将取决于您的CPU是否支持SIMD)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM