У меня есть словарь с ключом, парами значений, где значения являются списками значений, как показано ниже, чтобы добавить больше к вопросу, у меня есть мои предсказанные вероятности классов и соответствующие классы, которые я превратил в словарь, и я хочу получите 5 лучших проб для каждого класса:
# gets a dictionary of {'class_name': probability}
prob_per_class_dictionary = dict(zip(loaded_model.classes_, probs))
Словарь выглядит так:
{0: array([9.65109812e-07, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]),
1: array([9.30082941e-07, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]),
2: array([9.42541599e-07, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]),
3: array([9.54675878e-07, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]),
4: array([9.00161937e-07, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]),
5: array([9.33723827e-07, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]),
6: array([9.6553016e-07, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00,
0.0000000e+00, 0.0000000e+00]),
7: array([9.45838933e-07, 0.00000000e+00, 0.00000000e+00, ...,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00]),
Я хочу отсортировать словарь так, чтобы для каждого ключа говорилось 0: массив ([первые 5 значений отсортированы в порядке убывания]). Я пробовал следующее, которое сортирует его в порядке возрастания, но я хочу, чтобы только верхние 5 значений в порядке убывания.
for key, v_list in prob_per_class_dictionary.items():
v_list = v_list.sort()`
Пожалуйста, дайте мне знать, что было бы самым простым способом достичь этого?
я бы хотел, чтобы мои результаты выглядели примерно так
отсортировано (zip (loaded_model.classes_, probs [0]), key = lambda x: x [1]) [- n:] так, что для в каждом классе я получаю соответствующие пробники, и я получаю его для топ-5 классов и их соответствующих проб.
`[(1019, 0.02498873845258007),`
`(1421, 0.3491224577864634),`
`(1295, 0.5342553538931459)]`