Проверьте, находится ли каждый элемент в массиве 2D numpy в наборе

#python #numpy #set #where-clause

Вопрос:

Я хочу эффективно проверять для каждого элемента в массиве numpy, присутствует ли этот элемент в наборе. Например:

 segmask = np.array([[1,2,3,4]])
numbers = {2,4}
check_if_in_set(numbers, segmask)
 

должен вернуть

 [[False  True False  True]]
 

или аналогичный.

Ответ №1:

np.isin(segmask, list(numbers))

даст вам желаемый результат. Согласно документации isin, вы должны преобразовать набор в список, прежде чем передавать его в функцию isin.