<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Jun 26, 2018 at 6:14 PM Stephan Hoyer <<a href="mailto:shoyer@gmail.com">shoyer@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Jun 26, 2018 at 4:34 PM Robert Kern <<a href="mailto:robert.kern@gmail.com" target="_blank">robert.kern@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I maintain that considering deprecation is premature at this time. Please take it out of this NEP. Let us get a feel for how people actually use .oindex/.vindex. Then we can talk about deprecation. This NEP gets my enthusiastic approval, except for the deprecation. I will be happy to talk about deprecation with an open mind in a few years. With some more actual experience under our belt, rather than prediction and theory, we can be more confident about the approach we want to take. Deprecation is not a fundamental part of this NEP and can be decided independently at a later time.</div></blockquote><div><br></div><div>I agree, we should scale back most of the deprecations proposed in this NEP, leaving them for possible future work. In particular, you're not convinced yet that "outer indexing" is a more intuitive default indexing mode than "vectorized indexing", so it is premature to deprecate vectorized indexing behavior that conflicts with outer indexing. OK, fair enough.</div></div></div></blockquote><div><br></div><div>Actually, I do think outer indexing is more "intuitive"*, as far as that goes. It's just rarely what I actually want to accomplish.</div><div> </div><div>* I do not like using "intuitive" in programming. Nipples are intuitive. Everything else is learned. But in this case, I think that outer indexing is a more concordant extension of the concepts that a new numpy user would have learned earlier: integer indices and slices.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div>I would still like to include at least two more limited form of deprecation that I hope will be less controversial:</div><div>- Mixed boolean/integer array indexing. This is not very intuitive nor useful, and I don't think I've ever seen it used. Usually "outer indexing" behavior is what is desired here.</div><div>- Mixed array/slice indexing, for cases with arrays separated by slices so NumPy can't do the "intuitive" transpose on the output. As noted in the NEP, this is a common source of bugs. Users who want this should really switch to vindex.</div></div></div></blockquote><div><br></div><div>I'd still prefer not talking deprecation, per se, in this NEP (but my objection is weaker). I would definitely start adding in informative, noisy warnings in these cases, though. Along the lines of, "Hey, this is a dodgy construction that typically gives unexpected results. Here are .oindex/.vindex that might do what you actually want, but you can use .legacy_index if you just want to silence this warning". Rather than "Hey, this is going to go away at some point."</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Robert Kern</div></div>