The problem is that in numpy, the == operator returns an array:
>>> a == b array([[ True, False], [ True, True]], dtype=bool)
You use .array_equal() to compare arrays with a purely boolean value.
>>> any(np.array_equal(a, x) for x in my_list) True >>> any(np.array_equal(b, x) for x in my_list) True >>> any(np.array_equal(np.array([a, a]), x) for x in my_list) False >>> any(np.array_equal(np.array([[0,0],[0,0]]), x) for x in my_list) False
source share