Существует ли Pythonic и эффективный способ проверить, содержит ли массив Numpy хотя бы один экземпляр данной строки? "Эффективным" я подразумеваю, что он заканчивает поиск первой совпадающей строки, а не итерации по всему массиву, даже если результат уже найден.
С массивами Python это можно выполнить очень чисто с помощью if row in array:
, но это не работает так, как я ожидал бы для массивов Numpy, как показано ниже.
С массивами Python:
>>> a = [[1,2],[10,20],[100,200]]
>>> [1,2] in a
True
>>> [1,20] in a
False
но массивы Numpy дают разные и довольно странные результаты. (Метод __contains__
ndarray
кажется недокументированным.)
>>> a = np.array([[1,2],[10,20],[100,200]])
>>> np.array([1,2]) in a
True
>>> np.array([1,20]) in a
True
>>> np.array([1,42]) in a
True
>>> np.array([42,1]) in a
False