2012-03-01 3 views
0

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

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

как я могу объявить его как массив, используя NumPy и Cython? Возможно ли это как-то? Я знаю следующий синтаксис, но это не будет сделано, поскольку он дает только 1D-массив.

cdef numpy.ndarray[np.float_t] jagged 

ответ

4

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

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

или:

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

Как для 1- (mode = 'c' может ускорить работу, если вы не получите какой-либо порядок = массивы 'F'):

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