Я ищу способ эффективного получения массива булевых элементов, где заданы два массива с равным размером a
и b
, каждый элемент имеет значение true, если соответствующий элемент a
появляется in
соответствующий элемент b
.
Например, следующая программа:
a = numpy.array([1, 2, 3, 4])
b = numpy.array([[1, 2, 13], [2, 8, 9], [5, 6], [7]])
print(numpy.magic_function(a, b))
Должен печатать
[True, True, False, False]
Помните, что эта функция должна быть эквивалентна
[x in y for x, y in zip(a, b)]
Только numpy
-оптимизирован для случаев, когда a
и b
являются большими, и каждый элемент из b
достаточно мал.