Hi all,

I’d like to open a discussion on supporting callables within 
`np.ndarray.__getitem__`. The intent is to make long function-chaining 
expressions more ergonomic by removing the need for an intermediary, temporary 
value.

Instead of

```
tmp = long_and_complicated_expression(arr)
return tmp[tmp > 0]
```

we would allow

```
return long_and_complicated_expression(arr)[lambda x: x > 0]
```

This feature has long been supported by pandas’ .loc accessor, where I’ve 
personally found it very valuable. In accordance with the pandas 
implementation, the callable would be required to take only a single argument.

In terms of semantics, it should always be the case that `arr[fn] == 
arr[fn(arr)]`.

I do realize that expanding the API and supporting additional indexing methods 
is not without cost, so I open the floor to anyone who’d like to weigh in 
for/against the proposal.

_______________________________________________
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

Reply via email to