Personally I don't quite get why something like
a[a > 5] = 0
is possible (a is NumPy array).
I think it is confusing to use same name for element wise comparison and the array itself. Are comparison operators overloaded to generate this kind of predicate function or view in other contexts as well or is this some sort of special case that is handled by indexing (__getitem__ call)?