Verwenden eines Numpy-Arrays als Indizes für das 2. Maß eines anderen Arrays? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Indexieren eines Arrays nach dem anderen in numpy 3 answersZum Beispiel habe ich zwei numpy Arrays,
A = np.array(
[[0,1],
[2,3],
[4,5]])
B = np.array(
[[1],
[0],
[1]], dtype='int')
und ich möchte ein Element aus jeder Zeile von @ extrahierA
, und dieses Element wird von @ indizieB
, also möchte ich die folgenden Ergebnisse:
C = np.array(
[[1],
[2],
[5]])
Ich habe es versuchtA[:, B.ravel()]
, aber es wird gesendetB
, nicht was ich will. Sah auch innp.take
, scheint nicht die richtige Lösung für mein Problem zu sein.
Allerdings könnte ichnp.choose
durch transponierenA
,
np.choose(B.ravel(), A.T)
aber eine andere bessere Lösung?