emb*_*ert 9 python numpy typing cython memoryview
关于cython中的内存视图,使用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
Run Code Online (Sandbox Code Playgroud)
War*_*ser 14
如果你查看cython附带的numpy头文件(例如在主分支中,它是__init__.pxd
),你会发现
ctypedef double npy_double
Run Code Online (Sandbox Code Playgroud)
和
ctypedef npy_double float_t
Run Code Online (Sandbox Code Playgroud)
换句话说,float_t
是 double
,所以应该没有使用的优势np.float_t
.
归档时间: |
|
查看次数: |
3220 次 |
最近记录: |