在cython中的锯齿状阵列

时间:2012-03-01 22:44:33

标签: python numpy cython jagged-arrays

如果我在python中有一个参差不齐的列表,如

jagged = [[1],[2,3]]

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

cdef numpy.ndarray[np.float_t] jagged

1 个答案:

答案 0 :(得分:4)

Numpy数组(进出Cython)通常是矩形的。你没有说你正在试图用锯齿状阵列做什么,但你可以使用:

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

或:

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

至于你问题的一维部分,你想要ndim param(如果你不会得到任何命令='F'数组,模式='c'可以加快速度):

cdef numpy.ndarray[DTYPE_t, ndim=2, mode='c'] somearray