我不太明白numpy.{typename},numpy.npy_ {typename}和numpy.{typename} _t之间的区别是什么,当我从Cython代码中使用它们时?
即这些类型的区别是什么:
# test.pyx cimport numpy as np import numpy as np np.float32 np.npy_float32 np.float32_t
正如我现在所理解的那样:第一种类型是动态的,即Cython将生成一些代码以在运行时检测该类型的大小.另外两种类型是静态的,即使用它的代码将使用每种类型的预定义大小进行编译.请指正.
其他链接:https://docs.scipy.org/doc/numpy/reference/c-api.dtype.html#c-type-names
np.float32
是NumPy的TypeDescriptor,它是一个Python对象,可以查询并传递给NumPy来构造数组,就像在Python中一样.
np.npy_float32
是C类型,可以在需要C类型的任何地方使用,例如
cdef np.npy_float32 x = 1.902 cdef np.ndarray[np.npy_float32, ndim=2] A = np.zeros((3, 4), dtype=np.float32)
np.float32_t
简单地一个的typedef的np.npy_float32
可用于作为简写.