Зубчатый массив в cython

Если у меня есть зубчатый список в python, например

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

как я могу объявить его как массив, используя numpy и cython? Можно как-то? Я знаю следующий синтаксис, но он не подходит, так как дает только одномерный массив.

cdef numpy.ndarray[np.float_t] jagged

person Community    schedule 01.03.2012    source источник


Ответы (1)


Массивы Numpy (как внутри, так и вне Cython) обычно имеют прямоугольную форму. Вы не говорите, что вы пытаетесь сделать с зубчатым массивом, но вы можете использовать:

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

or:

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

Что касается одномерной части вашего вопроса, вам нужен параметр ndim (mode='c' может ускорить процесс, если вы не будете получать массивы order='F'):

cdef numpy.ndarray[DTYPE_t, ndim=2, mode='c'] somearray
person Eli Stevens    schedule 02.03.2012