In matlab the function unique works also for selecting the unique rows. That should be useful if you add this possibility also in numpy. For example: > a = np.array( [ [1,2][2,3][1,2] ] ) > > np.unique(a , row=True ) # for example > [[1,2] > [2,3]] see matlab docs: http://www.mathworks.com/help/matlab/ref/unique.html Now in numpy for performing this operation we must use some unreadable code like: > np.unique1d(c.view([('',c.dtype)]*c.shape[1])).view(c.dtype).reshape(-1,c.shape[1])