<div dir="ltr">On Mon, Mar 26, 2018 at 11:24 AM, Benjamin Root <<a href="mailto:ben.v.root@gmail.com">ben.v.root@gmail.com</a>> wrote:<br>><br>> I seem to be losing my mind... I can't seem to get this to work right.<br>><br>> I have a (N, k) array `distances` (along with a bunch of other arrays of the same shape). I need to resort the rows, so I do:<br>><br>> indexs = np.argsort(distances, axis=1)<br>><br>> How do I use this index array correctly to get back distances sorted along rows? Note, telling me to use `np.sort()` isn't going to work because I need to apply the same indexing to a couple of other arrays.<br>><br>> new_dists = distances[indexs]<br>><br>> gives me a (N, k, k) array, while<br>><br>> new_dists = np.take(indexs, axis=1)<br>><br>> gives me a (N, N, k) array.<br>><br>> What am I missing?<br><br>Broadcasting!<div><br></div><div>  new_dists = distances[np.arange(N)[:, np.newaxis], indexs]<br><br>--<br>Robert Kern</div></div>