usando uma matriz numpy como índices da 2ª dim de outra matriz? [duplicado
Esta pergunta já tem uma resposta aqui:
Indexing um array por outro em numpy 3 respostasPor exemplo, tenho duas matrizes numpy,
A = np.array(
[[0,1],
[2,3],
[4,5]])
B = np.array(
[[1],
[0],
[1]], dtype='int')
e eu quero extrair um elemento de cada linha deA
, e esse elemento é indexado porB
, então quero os seguintes resultados:
C = np.array(
[[1],
[2],
[5]])
Eu tenteiA[:, B.ravel()]
, mas transmitiráB
, não é o que eu quero. Também olhou paranp.take
, parece não ser a solução certa para o meu problem
No entanto, eu poderia usarnp.choose
por transposiçãoA
,
np.choose(B.ravel(), A.T)
mas qualquer outra solução melhor?