gpt4 book ai didi

python - 如何将 numpy ndarrays 列表作为向量传递给 cython

转载 作者:行者123 更新时间:2023-11-30 23:13:37 24 4
gpt4 key购买 nike

如何将 numpy ndarray 列表传递给 cython?假设列表 l (定义如下)的所有元素都是二维 float 组,但它们可能具有不同的行数和列数,所以我无法将它们全部堆叠到一个 numpy 数组中.

l = [np.zeros(i, 2 * i) for i in [5, 6, 7]]

我能够通过使用vector[np.int_t]作为函数的参数将整数列表传递给cython,但是我没有成功地使用以下任一方法传递ndarrays列表向量[np.ndarray]向量[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

关于python - 如何将 numpy ndarrays 列表作为向量传递给 cython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29223179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com