<div dir="ltr"><div dir="ltr">On Wed, Jul 1, 2020 at 12:23 PM Sebastian Berg <<a href="mailto:sebastian@sipsolutions.net">sebastian@sipsolutions.net</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This is a WIP, but allows nicely to try out how the new API<br>
could/should look like, and see the potential impact to code.  The<br>
current choice is for:<br>
<br>
    np.sort(arr, keys=(arr.real, arr.image))<br>
<br>
for example.  `keys` is like the `key` argument to pythons sorts, but<br>
unlike python sorts is not passed a function but rather a sequence of<br>
arrays.<br>
<br>
Alternative spellings could be `by=...`? Or maybe someone has a<br>
different API idea.<br></blockquote><div><br></div><div>I really like the look of np.sort(arr, by=(arr.real, arr.image)).</div><div>- 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.</div><div>- Calling the new argument "by" instead of "key" avoids confusion with the behavior of Python's sort/sorted (which take functions instead of sequences).</div><div><br></div>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.</div></div>