Быстрая команда доступа к элементам многомерного массива из списка с нужными индексами - PullRequest
0 голосов
/ 17 сентября 2018

Мне интересно, знает ли кто-нибудь быстрый способ получить элементы двумерного массива из списка заданных индексов?

Следующий код делает то, что я хочу, но мне интересно, есть ли какой-нибудь более быстрый способ выполнить операцию в цикле в приведенном ниже коде? Я ищу команду типа array [wantedIndices] вместо цикла в приведенном ниже коде.

import numpy as np
np.random.seed(1)
x = np.arange(0, 1+.1, .25)
y = np.arange(0, 1+.1, .25)
x, y = np.meshgrid(x,y)
print('\n x \n', x,)

index = [(np.random.randint(0, high=len(x)), np.random.randint(0, high=len(x))) for i in range(len(x))]
print('\n index \n', index)

for indexNumber in range(len(index)):
    print('\n index[%d]:' %indexNumber, index[indexNumber], '\n x[index[%d]] \n' %indexNumber, x[index[indexNumber]])

Приведенный выше код дает следующий вывод:

x 
 [[0.   0.25 0.5  0.75 1.  ]
 [0.   0.25 0.5  0.75 1.  ]
 [0.   0.25 0.5  0.75 1.  ]
 [0.   0.25 0.5  0.75 1.  ]
 [0.   0.25 0.5  0.75 1.  ]]

 index 
 [(3, 4), (0, 1), (3, 0), (0, 1), (4, 4)]

 index[0]: (3, 4) 
 x[index[0]] 
 1.0

 index[1]: (0, 1) 
 x[index[1]] 
 0.25

 index[2]: (3, 0) 
 x[index[2]] 
 0.0

 index[3]: (0, 1) 
 x[index[3]] 
 0.25

 index[4]: (4, 4) 
 x[index[4]] 
 1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...