Зубчатый массив в Cython - PullRequest
0 голосов
/ 02 марта 2012

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

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

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

cdef numpy.ndarray[np.float_t] jagged

1 Ответ

4 голосов
/ 02 марта 2012

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

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

или

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

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

cdef numpy.ndarray[DTYPE_t, ndim=2, mode='c'] somearray
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...