У меня есть функция, которая возвращает Numpy массив целочисленных меток, например:Получить индексы наименее часто встречающихся значений в NumPy
labels_array = numpy.array([0, 0, 1, 1, 0, 1, 2, 3, 0, 2, 3,])
Этикетки всегда выполняются последовательно, начиная с 0.
Моя цель - найти индексы ярлыков в label_array, которые происходят наименее часто. Если в label_array есть несколько меток, удовлетворяющих этому условию, то я хочу получить все соответствующие индексы. Для приведенного выше примера, я получил бы
result= [6, 7, 9, 10]
и не только [6]
В настоящее время подсчитать количество вхождений каждой метки, а затем получить индексы те, которые происходят по меньшей мере.
occurrencePerLabel = numpy.bincount(labels_array)
labels = numpy.where(occurrencePerLabel == occurrencePerLabel.min())
Теперь у меня есть
labels = (array([2, 3]),)
говорил мне, что 2 и 3 являются метки, которые происходят менее часто в labels_array
Далее, мне нужно, чтобы получить показатели, на которых labels_array является 2 или 3, и это будет именно тот результат, который я ищу. В основном я ищу что-то вроде
labels_array.index(labels_array == labels)
Как это сделать с numpy?
Спасибо, я не знал о np.in1d, он делает именно то, что Ineed! – Darina