[我正在寻求利用numba来迭代大型2d数组,在该数组中,对于迭代,该数组的子集将通过[x,y]位置(作为参数传递)进行选择。我在构造这种与numba完美搭配的正确方法时遇到了麻烦,特别是在将列表列表作为参数传递给方法时。有指针吗?
x_y_list = [[1, 2], [3, 4], [5, 6]]
array = ([[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 6]])
@jit
def arrIndexing(array, x_y_list):
for index in x_y_list:
subset = array[index[0]-1:index[0]+1, index[1]-1:index[1]+1]
# do some other stuff
这样的东西?应该可以很好地与Numba搭配使用,但我尚未进行测试(是否在不支持Numba的手机上进行了此测试)
import numpy as np
def xy():
x_y_list = np.array([[1, 2], [2, 4], [0, 5]])
array = np.array([[1, 2, 3, 4, 5, 6],[1, 2, 3, 4, 5, 6],[1, 2, 3, 4, 5, 6]])
for i,j in x_y_list:
print(array[np.ix_((i-1, i), (j-1, j))])
>>> xy()
[[2 3]
[2 3]]
[[4 5]
[4 5]]
[[5 6]
[5 6]]