Advanced (a.k.a. "fancy") indexing is one of NumPy's greatest features. It is also well known for its ability to trip and confuse beginners and experts alike. This talk will review how it works and why it is great, give some insight on why it is how it is, explore some of its darkest corners, and go over some recent proposals to rationalize it.
Advanced (a.k.a. fancy) indexing is one of NumPy's greatest features. Once past the rather steep learning curve, it enables a very expressive and powerful syntax, and makes coding a wide range of complex operations a breeze. But this versatility comes with a dark side of surprising results for some seemingly simple cases, and conflicts with the design choices of more recent data analysis packages. This has led to a viewpoint with growing support among the community that fancy indexing may be too fancy for its own good. This talk will review the workings of advanced indexing, highlighting where it excels, and where it falls short, and give some context on the logic behind some design decisions. It will also cover the existing NumPy Enhancement Proposal (NEP) to "implement an intuitive and fully featured advanced indexing."