Интересно, существует ли numpy естественный способ создания двоичной маски над массивом1 для элементов, которые также находятся в массиве2. Еще один способ сказать это, бинарная маска над массивом1 для пересечения массивов1 и 2.
Это работает:
def bin_mask(a, b):
return sum(a==n for n in b)
a = np.array([1,2,3,4,5,6,7,8,9,20])
b = np.array([3,5,7])
In: bin_mask(a,b)
Out: array([0, 0, 1, 0, 1, 0, 1, 0, 0, 0])
Но мне интересно, если есть какой-то предварительно настроенный numpy, которого мне не хватает.
Редактировать: Правильный ответ из комментариев: np.isin (a, b). Я также пометил in1d как правильный ответ. Оба работают.