在Cython中与nogil并行使用numpy数组数组

时间:2016-07-13 23:14:20

标签: parallel-processing cython gil cythonize

我想在nogil的Cython并行循环中分配numpy数组(带元素为数组的数组)数组。我使用dtype作为对象,能够将numpy数组指定为数组元素。它在Cython中无需并行化。但是通过使用parallel,它会显示以下错误消息:

  

不允许在没有gil的情况下分配Python对象

我确实尝试过不同的方法在cdef中声明它,但它仍然无效。我不确定Cython并行化是否支持数组数组。如果是这样,那么声明类型并赋值的最佳方法是什么。

cdef np.ndarray[ dtype= object, ndim=2]  ST_matrix=np.zeros( 10, dtype=   [('f1', '(4,)float64'), ('f2', '(4,)float64')])

错误消息:

  

不允许在没有gil的情况下分配Python对象

cdef double [:,:] ST_matrix
ST_matrix=np.zeros( I, dtype=[('f1', '(4,)float64'), ('f2', '(4,)float64')])

错误消息:

  

"无法分配类型' double [:]'到'加倍"

0 个答案:

没有答案