Итак, у меня есть словарь кандидатов и словарь должностей, на которые они претендуют. Я перебираю эти два словаря и нахожу совпадения в зависимости от местоположения, области интересов и т. Д. Я оцениваю эти совпадения так, чтобы у каждого кандидата было 100 баллов за каждую позицию, 100 - идеальное совпадение. Я использую массив 5x5 прямо сейчас, чтобы проверить мой код. Скажем, массив выглядит так после того, как оценка была выполнена.
65 30 37 40 35
35 42 30 60 47
0 0 0 0 0
45 0 0 0 87
0 60 0 0 0
Строки обозначают позиции, а столбцы - кандидатов. Итак, используя этот пример, кандидат 4 имеет наивысший балл 87 для позиции 3. Я хочу как-то пройтись по этому массиву и сопоставить кандидатов с лучшим баллом с их правильной позицией; однако, не может быть дубликатов. В идеале сопоставление должно выглядеть следующим образом:
Позиция 0: Кандидат 0
Позиция 1: Кандидат 3
Позиция 2: Кандидат 2
Позиция 3: Кандидат 4
Позиция 4: Кандидат 1
Цикл начнется с нахождения наибольшего количества баллов, сопоставления этого кандидата с его соответствующей позицией и продолжения без дубликатов, пока все кандидаты не будут сопоставлены однозначно. Также он должен работать для массива любого размера. Заранее спасибо. Дайте мне знать, если мне нужно предоставить более подробную информацию. Вид нового переполнения стека и программирования в целом.
Я пытался найти максимум и затем удалить столбец для этого кандидата, но это не сработало по нескольким причинам. Во-первых, изменяется размер матрицы, поэтому меняются номера кандидатов / позиций. Кроме того, функция numpy.delete фактически не меняет массив - она просто отображает измененный массив.