如何在nogil函数内的Cython中使用字典

时间:2018-12-11 09:56:51

标签: python c++ c scikit-learn cython

我想使用

这样的字典
{0: [1.], 
 1: [2.]} 

我知道在Cython nogil函数中使用普通的Python对象是非法的,因此我想在其中使用IntFloatDict sklearn/utils/fast_dict.pyx

IntFloatDict替换Cython nogil函数中的普通Python字典后:

# distutils: language=c
cimport numpy as np
from fast_dict cimport IntFloatDict


np.import_array()


cdef IntFloatDict test_fast_dict(IntFloatDict a) nogil:
    return a


cdef IntFloatDict t 
t = IntFloatDict(np.ndarray([1]), np.ndarray([5.]))
test_fast_dict(t)

然后我遇到了:

Error compiling Cython file:
------------------------------------------------------------
...


np.import_array()


cdef IntFloatDict test_fast_dict(IntFloatDict a):
    ^
------------------------------------------------------------

test_c_nogil.pyx:9:5: 'IntFloatDict' is not a type identifier

以上是什么意思,如何解决?

0 个答案:

没有答案