У вас это почти есть.
Это даст вам индекс последнего вхождения максимального значения
np.where(arr == np.max(arr))[0][-1]
, и если вы хотите первое вхождение максимального значения, оно это:
np.where(arr == np.max(arr))[0][0]
Пример
import numpy as np
arr = np.array(np.random.choice([1, 2, 3, 4], size=10))
print(arr)
Output : [4 1 2 4 1 1 4 2 4 3]
Тогда:
np.where(arr == np.max(arr))[0][-1] # last index of max value
Output: 8
или
np.where(arr == np.max(arr))[0][0] # first index of max value
Output: 0
Вы можете затем перейдите к замене на индекс.