[Numpy-discussion] np.unique for one bi-dimensional array

Val Kalatsky kalatsky at gmail.com
Tue Jul 24 21:15:35 EDT 2012


There are various ways to repack the pair of arrays into one array.
The most universal is probably to use structured array (can repack more
than a pair):

x = np.array(zip(a, b), dtype=[('a',int), ('b',int)])

After repacking you can use unique and other numpy methods:

xu = np.unique(x)
zip(xu['a'], xu['b'], np.bincount(np.searchsorted(xu, x)))

[(4, 3, 2), (4, 4, 2), (4, 5, 1), (5, 4, 1)]

Val

On Tue, Jul 24, 2012 at 5:09 PM, Giuseppe Amatulli <
giuseppe.amatulli at gmail.com> wrote:

> Hi,
>
> would like to identify unique pairs of numbers in two arrays o in one
> bi-dimensional array, and count the observation
>
> a_clean=array([4,4,5,4,4,4])
> b_clean=array([3,5,4,4,3,4])
>
> and obtain
> (4,3,2)
> (4,5,1)
> (5,4,1)
> (4,4,2)
>
> I solved with tow loops but off course there will be a fast solution
> Any idea?
> what about using np.unique for one bi-dimensional array?
>
> In bash I usually unique command
>
> thanks in advance
> Giuseppe
>
> --
> Giuseppe Amatulli
> Web: www.spatial-ecology.net
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120724/4b84f443/attachment.html>


More information about the NumPy-Discussion mailing list