![](/img/trans.png)
[英]How to map a list of Numpy matrices to a vector of Eigen matrices in Cython
[英]How to pass a list of numpy ndarrays as a vector to cython
如何将numpy ndarray列表传递给cython? 假设列表l
(下面定义)的所有元素都是2d float数组,但它们可能有不同数量的行和列,所以我不能将它们全部堆叠成一个numpy数组。
l = [np.zeros(i, 2 * i) for i in [5, 6, 7]]
我能够通过使用vector[np.int_t]
作为函数的参数将整数列表传递给cython,但是我没有成功通过使用vector[np.ndarray]
或vector[np.ndarray[np.float_t, ndim=2]]
vector[np.ndarray]
传递ndarrays列表vector[np.ndarray[np.float_t, ndim=2]]
正如@hpaulj所指出的,您可以将列表作为声明的输入参数传递,然后声明一个“接收”列表中每个元素的缓冲区。 通过这种方式,您可以以最大效率迭代列表和数组。 这可以编码为:
def test(list list_of_2darrays):
cdef np.ndarray[ndim=2, dtype=np.float64_t] buff2d # check your dtype
cdef int i, j
for buff2d in list_of_2darrays:
for i in range(buff2d.shape[0]):
for j in range(buff2d.shape[1]):
buff2d[i, j] += i + j
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.