我在python中有一个numpy.ndarrays(具有不同长度)的列表,需要能够非常快速地访问python中的那些.我认为一系列指针可以解决这个问题.我试过了:
float_type_t* list_of_arrays[no_of_arrays]
for data_array in python_list_of_arrays:
list_of_arrays[0] = data_array
但是cython抱怨:
no_of_arrays < Not allowed in a constant expression
我已经尝试了几种方法来满足这个变量:
cdef extern from *:
ctypedef int const_int "const int"
(有更多的创造性尝试) – 但不幸的是它不起作用.
请帮忙.
最佳答案
为什么不使用numpy对象数组而不是数组列表?
我认为你遇到的问题是因为你在堆栈中声明了list_of_arrays,并且它的大小必须在编译时知道.你可以尝试一些dynamic allocation,像这样:
from libc.stdlib cimport malloc,free
cdef float_type_t *list_of_arrays = \
(这假设data_array是一个numpy数组.)
但这仍然是猜测你想要做什么.