Numpy argmax на нескольких осях, определяемых другими векторами - PullRequest
0 голосов
/ 03 апреля 2019

Скажем, у меня есть 3d-матрица под названием A с формой (100,4100).А также два вектора по 200 значений каждый, созданные следующим образом:

b = np.random.randint(0, 3, 200)
c = np.random.randint(0, 99, 200)

Как я могу эффективно найти argmax для каждого из A [b, c,:]?

Я могусделать цикл for, который будет выглядеть так:

for i in range(200):
    np.argmax(A[b[i], c[i], :])

Есть ли у меня более эффективные варианты, избегая цикла for?

1 Ответ

0 голосов
/ 04 апреля 2019

Решение, предложенное Divakar выше, заключается в использовании ndarray.argmax , так что это будет выглядеть как A[b,c].argmax(1)

...