7
什么是令人困惑的是,如果你想创建一个数组使用Cython中numpy“类型标识符”和“类型”有什么区别?
chunk = np.array ([[94.,3.],[44.,4.]], dtype=np.float64)
但是,如果你要定义一个buffer
参考里面的类型,您使用
cdef func1 (np.ndarray[np.float64_t, ndim=2] A):
print A
通知np.float64
之间的区别和np.float64_t
。
我的猜测
我猜测,一个type identifier
是什么明确创建瓦特/用Cython类似C typedef
语法
ctypedef np.float64_t dtype_t
但numpy的type
仅仅是Python的<type 'type'>
型。
>>> type (np.float64)
<type 'type'>
关于dtype
的Numpy文档不帮助我。 http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html
好吧,看起来大部分{float,int} {32,64} _t都是C类型double,扩展为Python。虽然我找不到没有“_t”的类型,至少在numpy.pxd – HeyWatchThis
没有“_t”的类型来自“import numpy”,而不是来自“cimport numpy”。如果这是令人困惑的,你可以做“cimport numpy as cnp”来查看差异。 –
是的,我刚刚也阅读了[http://cython.readthedocs.org/en/latest/src/tutorial/numpy.html]。您可以添加,作为答案,我会接受,或者最终我只是添加它。 – HeyWatchThis