usando una matriz numpy como índices del segundo dim de otra matriz? [duplicar
Esta pregunta ya tiene una respuesta aquí:
Indexing una matriz por otra en numpy 3 respuestasPor ejemplo, tengo dos matrices numpy,
A = np.array(
[[0,1],
[2,3],
[4,5]])
B = np.array(
[[1],
[0],
[1]], dtype='int')
y quiero extraer un elemento de cada fila deA
, y ese elemento está indexado porB
, así que quiero los siguientes resultados:
C = np.array(
[[1],
[2],
[5]])
Lo intentéA[:, B.ravel()]
, pero transmitiráB
, no es lo que quiero. También examinónp.take
, parece que no es la solución correcta para mi problema.
Sin embargo, podría usarnp.choose
transponiendoA
,
np.choose(B.ravel(), A.T)
pero alguna otra solución mejor?