cython 中的锯齿状数组

2 python numpy jagged-arrays cython

如果我在 python 中有一个锯齿状的列表,比如

jagged = [[1],[2,3]]
Run Code Online (Sandbox Code Playgroud)

如何使用 numpy 和 cython 将其声明为数组?有可能吗?我知道以下语法,但它不会,因为它只提供一维数组。

cdef numpy.ndarray[np.float_t] jagged
Run Code Online (Sandbox Code Playgroud)

Eli*_*ens 5

Numpy 数组(在 Cython 内外)通常是矩形的。你没有说你想用锯齿状数组做什么,但你可能可以使用:

http://docs.scipy.org/doc/numpy/reference/maskedarray.html

或者:

http://docs.scipy.org/doc/scipy/reference/sparse.html

至于你问题的一维部分,你需要 ndim 参数(如果你不会得到任何 order='F' 数组,mode='c' 可以加快速度):

cdef numpy.ndarray[DTYPE_t, ndim=2, mode='c'] somearray
Run Code Online (Sandbox Code Playgroud)