我想使用
这样的字典{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
以上是什么意思,如何解决?