использование массива numpy в качестве индексов второго dim другого массива? [Дубликат]
На этот вопрос уже есть ответ:
Индексирование одного массива другим в numpy 3 ответаНапример, у меня есть два массива,
A = np.array(
[[0,1],
[2,3],
[4,5]])
B = np.array(
[[1],
[0],
[1]], dtype='int')
и я хочу извлечь один элемент из каждой строкиA
, и этот элемент индексируется какB
, поэтому я хочу получить следующие результаты:
C = np.array(
[[1],
[2],
[5]])
Я пыталсяA[:, B.ravel()]
но будет транслироватьсяB
не то, что я хочу. Также посмотрел вnp.take
, кажется, не правильное решение моей проблемы.
Однако я мог бы использоватьnp.choose
транспонированиемA
,
np.choose(B.ravel(), A.T)
но какое-нибудь другое лучшее решение?