在Cython中,当使用numpy时,写作的目的是什么:
cimport numpy as np
import numpy as np
ctypedef np.int_t DTYPE_t
然后到处使用
DTYPE_t
而不是仅仅使用np.int_t
?ctypedef
在这里的结果代码中是否有任何不同之处? 最佳答案
您可以阅读docs for cython中的注释,阅读它们解释使用此符号和导入的原因的注释。
from __future__ import division
import numpy as np
# "cimport" is used to import special compile-time information
# about the numpy module (this is stored in a file numpy.pxd which is
# currently part of the Cython distribution).
cimport numpy as np
# We now need to fix a datatype for our arrays. I've used the variable
# DTYPE for this, which is assigned to the usual NumPy runtime
# type info object.
DTYPE = np.int
# "ctypedef" assigns a corresponding compile-time type to DTYPE_t. For
# every type in the numpy module there's a corresponding compile-time
# type with a _t-suffix.
ctypedef np.int_t DTYPE_t
# "def" can type its arguments but not have a return type. The type of the
# arguments for a "def" function is checked at run-time when entering the
# function.
#
# The arrays f, g and h is typed as "np.ndarray" instances. The only effect
# this has is to a) insert checks that the function arguments really are
# NumPy arrays, and b) make some attribute access like f.shape[0] much
# more efficient. (In this example this doesn't matter though.)
关于python - Cython中的numpy的ctypedef:正确的约定是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22083660/