On Sun, Jul 19, 2020 at 10:27 PM Jonathan Goble <jcgob...@gmail.com> wrote:
> One use case that comes up in xarray and pandas is support for indicating >> indexing "modes". For example, when indexing with floating point numbers >> it's convenient to be able to opt-in to approximate indexing, e.g., >> something like: >> array.loc[longitude, latitude, method='nearest', tolerance=0.001] >> > > I had to stare at this for a good 30 seconds before I realized that this > wasn't a function/method call. Except for the square brackets instead of > parentheses, it would be. > Honestly, this whole idea smells to me like just wanting another type of > function call with different semantics. > IMHO the above example would be better spelled as: > array.loc.get(longitude, latitude, method='nearest', tolerance=0.001) > The problem is that with Pandas, Xarray, and other data frame/data array libraries, using slices is typical. Continuing with the example: arr.loc[45:46, 69:70, altitude=300:400, tolerance=0.0001, projection=" WGS1984"] There's no reason to tack a function onto the .loc accessor, it could just be a method on the array/data frame itself. So there are no extra characters. But doing this with parentheses would need a different new feature of allowing slices directly as arguments. That said, pandas.IndexSlice and numpy.s_ both provide accessors to allow passing slices more easily. So this is possible now: arr.get(I[45:46], I[69:70], altitude=I[300:400], tolerance=0.0001, projection="WGS1984") ... I mean, assuming someone writes an appropriate .get() method for their favorite data array/frame library. But Python itself has everything needed.
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/W6UH7CWZK5BELTR6JB2B5XHZLAPS4N74/ Code of Conduct: http://python.org/psf/codeofconduct/