关于cython中的memoryviews,如果我正在使用numpy浮点数组,使用NumPy类型(如np.float_t
)对视图进行类型化是否比简单地使用double
有任何优势?
如果我要使用cdef
,那么应该以相同的方式进行类型化,例如:
ctypedef np.float64_t np_float_t
...
@cython.profile(False)
@cython.wraparound(False)
@cython.boundscheck(False)
cdef np_float_t mean_1d(np_float_t [:] v) nogil:
cdef unsigned int n = v.shape[0]
cdef np_float_t n_sum = 0.
cdef Py_ssize_t i
for i in range(n):
n_sum += v[i]
return n_sum / n
Py_ssize_t
的新问题,而不是留下评论。这样可以确保它得到最广泛的关注。 - Warren Weckesser