Ah, yes, I should have thought about that. Kind of seems like something
that we could make `np.take()` do, somehow, for something that is easier to
read.

Thank you!
Ben Root


On Mon, Mar 26, 2018 at 2:28 PM, Robert Kern <robert.k...@gmail.com> wrote:

> 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
>
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to