The distinction that boolean indexing has over the other 2 methods of indexing is that it can guarantee that it references a position at most once. Slicing and scalar indexes are also this way, hence why these methods allow for in-place assignments. I don't see boolean indexing as an extension of orthogonal indexing because of that.

Ben Root

On Thu, Apr 2, 2015 at 2:41 PM, Stephan Hoyer <shoyer@gmail.com> wrote:
On Thu, Apr 2, 2015 at 11:03 AM, Eric Firing <efiring@hawaii.edu> wrote:
Fancy indexing is a horrible design mistake--a case of cleverness run
amok.  As you can read in the Numpy documentation, it is hard to
explain, hard to understand, hard to remember.

Well put!

I also failed to correct predict your example.
 
So I think you should turn the question around and ask, "What is the
actual real-world use case for fancy indexing?"  How often does real
code rely on it?

I'll just note that Indexing with a boolean array with the same shape as the array (e.g., x[x < 0] when x has greater than 1 dimension) technically falls outside a strict interpretation of orthogonal indexing. But there's not any ambiguity in adding that as an extension to orthogonal indexing (which otherwise does not allow ndim > 1), so I think your point still stands.

Stephan

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion