Доступ к множеству индексов в большом двумерном массиве - PullRequest
0 голосов
/ 10 октября 2019

Предположим, у меня есть:

(i) Массив 1 - двумерный массивный массив размером: 50000 x 20000.

(ii) Массив 2 - еще один массив нулей аналогичного размера, т.е. 50000x 20000

(iii) Список 1 таких индексов, как - [[i1, j1], [i1, j2], [i3, j3] .... [in, jn]]

(iv) Список 2 индексов - [[[m1, n1], [m1, n2], [m3, n3] .... [m, n]]]

Что будет эффективнымспособ сделать следующее для каждого индекса в списке 1, списке 2:

                       Array2[m1,n1]= array1[i1,j1]
                       Array2[m2,n2]= array1[i2,j2]
                       Array2[m3,n3]= array1[i3,j3]
                                    .
                                    .
                       Array2[mn,nn]= array1[in,jn]

1 Ответ

0 голосов
/ 10 октября 2019

Предполагая, что вы убедились, что размеры массивов одинаковы, а также оба списка индексов, вы можете сделать это просто:

for N, index_couple in enumerate(list_of_indices_1):
    i = index_couple[0]
    j = index_couple[1]
    m = list_of_indices_2[N][0]
    n = list_of_indices_2[N][1]
    array2[m,n] = array1[i,j]

Или, может быть, более явно:

for N,_ in enumerate(list_of_indices_1):
    i = list_of_indices_1[N][0]
    j = list_of_indices_1[N][1]
    m = list_of_indices_2[N][0]
    n = list_of_indices_2[N][1]
    array2[m,n] = array1[i,j]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...