Я думаю, что np.argsort, кажется, делает свое дело, вам просто нужно убедиться, что матрица перевернута горизонтально, чтобы уменьшить ее в порядке:
>>>matrix = np.array(
[[ 0.8, 0.2, 0.1],
[ 1. , 0. , 0. ],
[ 0. , 0. , 1. ]])
>>> np.fliplr(np.argsort(matrix))
array([[0, 1, 2],
[0, 2, 1],
[2, 1, 0]])
Это должно быть правильным выводом, если у вас нетлюбые требования к сортировке галстуков.Прямо сейчас щелчок заставит самый правый связать первый индекс.Если вы хотите, чтобы ваш точный вывод совпадал с первым крайним левым индексом, вы можете сделать немного жонглирования:
# Flip the array first and get the indices
>>> flipped = np.argsort(np.fliplr(matrix))
# Subtract the width of your array to reverse the indices
# Flip the array to be in descending order
>>> np.fliplr(abs(flipped - flipped.shape[1]))
array([[0, 1, 2],
[0, 1, 2],
[2, 0, 1]])