[Numpy-discussion] [SciPy-user] unique, sort, sortrows
Robert Cimrman
cimrman3 at ntc.zcu.cz
Sat Jul 26 17:35:24 EDT 2008
Hi David,
I can comment on unique1d, as I am the culprit. I am cc'ing to
numpy-discussion as this is a numpy function.
Quoting "David M. Kaplan" <David.Kaplan at ird.fr>:
> 2) Is there a simple equivalent of sortrows(a) (i.e., sorting by entire
> rows)? Similarly, is there a simple equivalent of the matlab Y =
have you looked at lexsort?
> 3) Is there an equivalent of [Y,I,J] = unique(X)? In this case, I is
> the indices of the unique elements and J is an index from Y to X (i.e.,
> where the unique elements appear in X. I can get I with:
>
> I,Y = unique1d( X, return_index=True )
>
> but J, which is very useful, is not available. I suppose I could do:
>
> J = array([])
> for i,y in enumerate(Y):
> J[ nonzero( y == X ) ] = i
>
> But it seems like J is useful enough that there should be an easier way
> (or perhaps it should be integrated into unique1d, at the risk of adding
> more keyword arguments).
So basically Y = X[I] and X = Y[J], right? I do not recall matlab that
well to know for sure. It certainly could be done, I could look at it
after I return from Euroscipy (i.e. after Monday).
I would replace return_index argument by two arguments: return_direct
(->I) and return_inverse (->J), ok? Does anyone propose better names?
Actually most of the methods in arraysetops could return optionally
some index arrays. Would anyone use it? (I do not need it personally :)
cheers,
r.
More information about the NumPy-Discussion
mailing list