Как построить набор индексов для ссылки на массив

Если у меня есть:

x = np.asarray([[1,2],[3,4],[5,6]])

И я хотел бы создать:

y = np.asarray([1,4,5])

Для этого я построил массив следующим образом:

inds = np.asarray([[0,0],[1,1],[2,0]])

И я передал это x следующее:

y = x[inds]


Это не приводит к элементам, индексированным строками в inds, Как мне достичь этой функциональности либо таким способом, либо способом, очень похожим на этот?

1 ответ

Решение

Это то, для чего продвинулась индексация; Извлеките индекс строки и индекс столбца в два отдельных массива и используйте их для подмножества массива:

x[inds[:,0], inds[:,1]]
# array([1, 4, 5])

Другие вопросы по тегам