Аргумент списка Numba для индексации массива - PullRequest
0 голосов
/ 09 апреля 2020

Я стремлюсь использовать 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

1 Ответ

0 голосов
/ 11 апреля 2020

Как то так? Должно быть хорошо с 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]]
...