У меня проблемы с простой задачей нарезки массива на основе значений другого массива.
У меня есть массив баллов с формой:
scores.shape = (1, 100, 1)
для оценки достоверности для 100 обнаружений в каждом изображении в пакете (но я использую одно изображение, поэтому у меня есть только один элемент в пакете). Итак, для первого и единственного изображения у меня есть значения для 100 обнаружения: *
scores[0] -> [score00, ..., score99]
Затем у меня есть другой аналогичный массив, bboxes ... для каждого изображения в пакете (опять же, используя только одно изображение), и для всех 100 обнаружений в каждом изображении оно содержит 4 значения. Итак, форма:
bboxes.shape = (1, 100, 4)
Для единственного изображения у меня есть 100 четверок значений
bboxes[0] -> [ [x_min, y_min, x_max, y_max], ..., [x_min, y_min, x_max, y_max] ]
, и из этих 100 четвертей мне нужно извлечь только те, которые соответствуют элементы в баллах, значение которых превышает определенный порог (0,5). Итак, скажем, что только первые 2 балла выше порога, я бы хотел только первые 2 четверки.
Я пытаюсь что-то вроде:
print(bboxes[0][scores[0]>0.5])
но я получаю ошибку:
IndexError: boolean index did not match indexed array along dimension 1; dimension is 4 but corresponding boolean dimension is 1
Что я делаю не так?