# [Numpy-svn] r3183 - trunk/numpy/lib

numpy-svn at scipy.org numpy-svn at scipy.org
Mon Sep 18 19:00:10 CDT 2006

```Author: stefan
Date: 2006-09-18 19:00:03 -0500 (Mon, 18 Sep 2006)
New Revision: 3183

Modified:
trunk/numpy/lib/arraysetops.py
Log:
Fix unique1d for empty sets. Closes r208.

Modified: trunk/numpy/lib/arraysetops.py
===================================================================
--- trunk/numpy/lib/arraysetops.py	2006-09-18 23:27:24 UTC (rev 3182)
+++ trunk/numpy/lib/arraysetops.py	2006-09-19 00:00:03 UTC (rev 3183)
@@ -48,20 +48,24 @@
##
# 01.11.2005, c
# 02.11.2005
-def unique1d( ar1, retindx = False ):
+def unique1d(ar1, retindx=False):
"""Unique elements of 1D array. When ret_indx is True, return also the
indices indx such that ar1.flat[indx] is the resulting array of unique
elements."""
+    ar = numpy.asarray(ar1).ravel()
+    if ar.size == 0:
+        if retindx: return numpy.empty(0, numpy.bool), ar
+        else: return ar
+
if retindx:
-        ar = numpy.array(ar1).ravel()
perm = ar.argsort()
aux = ar.take(perm)
-        flag = ediff1d( aux, 1 ) != 0
+        flag = ediff1d(aux, 1) != 0
return perm.compress(flag), aux.compress(flag)
+
else:
-        ar = numpy.array( ar1 ).flatten()
-        ar.sort()
-        return ar.compress( ediff1d( ar, 1 ) != 0)
+        ar = numpy.array(sorted(ar))
+        return ar.compress(ediff1d(ar, 1) != 0)

##
# 01.11.2005, c

```