对我的一维数组使用MemoryView似乎比使用原始指针慢得多。有没有一种简单的方法可以将多维numpy数组(或memoryview)转换为指针数组?
这是我为1d阵列所做的:
cdef np.ndarray[dtype=double, ndim=1] a1
cdef double* a2 = &a1[0]
我需要一个3d阵列:
cdef np.ndarray[dtype=double, ndim=3] b1
cdef double***b2 = <something here>
显然,我可以展平3d阵列并计算必要的一维索引。
我也可以手动填充 double***b2
阵列:
b2 = <double***> malloc(len(b1) * sizeof(double**))
for i, a in enumerate(b1):
b2[i] = <double**> malloc(len(a) * sizeof(double*))
for j, b in enumerate(a):
b2[i][j] = <double *> malloc(len(b) * sizeof(double))
for k, c in enumerate(b):
b2[i][j][k] = c
但有没有更好的内置方法来实现这一点?
暂无答案!
目前还没有任何答案,快来回答吧!