Как построить набор индексов для ссылки на массив
Если у меня есть:
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])