Как получить значения 2D-массива на основе значений 1D-массива? - PullRequest
0 голосов
/ 25 августа 2018
>>> image = np.arange(20).reshape((4, 5))
>>> image
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
>>> idx = [[2, 1], [2, 3], [3, 4]]

Как получить значения из массива image, координаты которого указаны в idx? Из приведенного выше кода я хочу получить значения 11 (image[2, 1]), 13 (image[2, 3]) и 19 (image[3, 4]). Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

(если вы собираетесь использовать numpy, используйте numpy)

Определите:

>>> image = np.arange(20).reshape((4, 5))
>>> idx = np.array([[2, 1], [2, 3], [3, 4]]).T

Решение с использованием необычных возможностей индексирования Numpy:

>>> image[tuple(idx)]
array([11, 13, 19])
0 голосов
/ 25 августа 2018

Вы можете использовать понимание списка:

[image[x[0], x[1]] for x in idx]

>>> [11, 13, 19]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...