I have to say I like this! Together with partial functions / toolz currying [1] it could make for some rather elegant code:
result = gaussian_filter(image)[greater_than(t)] Juan. ..[1]: https://toolz.readthedocs.io/en/latest/curry.html On Wed, 24 Nov 2021, at 9:37 AM, cameron.pinne...@gmail.com wrote: > If you have an array built up out of method chaining, sometimes you > need to filter it at the very end. This can be annoying because it > means you have to create a temporary variable just so you can refer to > it in the indexing square brackets: > > _temp = long_and_complicated_expression() > result = _temp[_temp >= 0] > > You could also use the walrus operator but this is odd looking and it > still pollutes the namespace: > > result = (_temp := long_and_complicated_expression())[_temp >= 0] > > What I would like is to be able to use a lambda inside the indexing > square brackets, which would take the whole array as an argument and > give a boolean array: > > result = long_and_complicated_expression()[lambda arr: arr >= 0] > > I should emphasize, the lambda gets the entire array as its argument, > and returns an entire mask array of bools. It isn't like the `map` and > `filter` builtins where it would call the python function once for each > element and thus be slow. > > Pandas already has something similar[1]; you can pass a lambda into > `.loc[]` that takes a Series and returns a boolean indexer. > > [1] > https://pandas.pydata.org/pandas-docs/version/0.18.1/whatsnew.html#method-chaininng-improvements > _______________________________________________ > NumPy-Discussion mailing list -- numpy-discussion@python.org > To unsubscribe send an email to numpy-discussion-le...@python.org > https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ > Member address: j...@fastmail.com _______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com