[英]Loop over a Numpy array with Cython
设a
和b
为两个长度为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 a
和b
的数据类型和维数,则差异会更小:
cdef numpy.ndarray[np.float64_t, ndim=1] a, b
尽管差异会更小,但您不会击败b += a
因为这是使用NumPy的SIMD增强功能(该功能将取决于您的CPU是否支持SIMD)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.