
On Wed, Jul 1, 2020 at 12:23 PM Sebastian Berg <sebastian@sipsolutions.net> wrote:
This is a WIP, but allows nicely to try out how the new API could/should look like, and see the potential impact to code. The current choice is for:
np.sort(arr, keys=(arr.real, arr.image))
for example. `keys` is like the `key` argument to pythons sorts, but unlike python sorts is not passed a function but rather a sequence of arrays.
Alternative spellings could be `by=...`? Or maybe someone has a different API idea.
I really like the look of np.sort(arr, by=(arr.real, arr.image)). - This avoids adding an extra function sortby into NumPy's API. The default behavior (by=None) would of course be to sort by the arrays being sorted, so it's backwards compatible. - Calling the new argument "by" instead of "key" avoids confusion with the behavior of Python's sort/sorted (which take functions instead of sequences). The combination of lexsort() and take_along_axis() makes it possible to achieve this behavior currently, but it is definitely less clear than a single function call.