Как удалить дубликаты строк в массиве?

Дан массив NumPy:

[[1 0 1 0 0 1]
 [1 1 1 0 0 1]
 [1 0 1 0 0 1]
 [1 0 1 0 1 1]
 [1 0 1 0 0 1]]

a = [[1, 0, 1, 0, 0, 1],
     [1, 1, 1, 0, 0, 1],
     [1, 0, 1, 0, 0, 1],
     [1, 0, 1, 0, 1, 1],
     [1, 0, 1, 0, 0, 1]]

 b = np.array(a)

Как можно удалить дубликаты строк? То есть, на выходе должно получится:

[[1 0 1 0 0 1]
 [1 1 1 0 0 1]
 [1 0 1 0 1 1]]

Ответы (1 шт):

Автор решения: MaxU

воспользуйтесь np.unique(arr, axis=0):

In [23]: np.unique(b, axis=0)
Out[23]:
array([[1, 0, 1, 0, 0, 1],
       [1, 0, 1, 0, 1, 1],
       [1, 1, 1, 0, 0, 1]])

если нужно сохранить порядок строк:

u, idx = np.unique(b, axis=0, return_index=True)
res = u[idx.argsort()]

результат:

In [33]: res
Out[33]:
array([[1, 0, 1, 0, 0, 1],
       [1, 1, 1, 0, 0, 1],
       [1, 0, 1, 0, 1, 1]])
→ Ссылка