我需要初始化变量形状的数组
是否可以相应地键入numpy数组?我尝试了一些东西。
(dim,) + (nbins,)*dim
,其中dim通常很小,但nbins可能很大,因此数组具有ndims = dim + 1。例如,如果dim = 1
,则需要一个形状为(1, nbins)
的数组,如果dim = 2
,则形状为(2, nbins, nbins)
等。是否可以相应地键入numpy数组?我尝试了一些东西。
ctypedef uint32_t uint_t
ctypedef float real_t
...
cdef:
uint_t dim = input_data.shape[1]
np.ndarray[real_t, ndim=dim+1] my_array = np.zeros((dim,)\
+ (nbins,)*dim, dtype = np.float32)
是的,我本来就有预感它不会起作用,但还是尝试了一下 ;)
是否可以像这样做,还是必须使用指针/内存分配等?或者我只能(咽口气!)使用一维数组,在最后重新调整形状?