On Mon, Mar 26, 2018 at 11:24 AM, Benjamin Root <ben.v.r...@gmail.com> wrote: > > I seem to be losing my mind... I can't seem to get this to work right. > > 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: > > indexs = np.argsort(distances, axis=1) > > 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. > > new_dists = distances[indexs] > > gives me a (N, k, k) array, while > > new_dists = np.take(indexs, axis=1) > > gives me a (N, N, k) array. > > What am I missing?
Broadcasting! new_dists = distances[np.arange(N)[:, np.newaxis], indexs] -- Robert Kern
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion