关于 cython 中的内存视图,使用 NumPy 类型输入视图是否有任何优势,例如np.float_t
而不是简单地做double
如果我正在使用 numpy float 数组?
我应该输入cdef
然后以同样的方式,做e。 G。
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
如果您查看 cython 包含的 numpy 头文件(例如在 master 分支中,它是__init__.pxd), 你会找到
ctypedef double npy_double
and
ctypedef npy_double float_t
换句话说,float_t
is double
,所以使用应该没有优势np.float_t
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)