Założenie, że twoja tablica 2D jest przechowywana w zwykłym porządku C (to znaczy, że każdy wiersz jest liczony jako tablica lub lista w głównej tablicy, innymi słowy kolejność rzędów-głównych) lub, że transponujesz wcześniej tablicę w przeciwnym razie, można zrobić coś takiego ...
>>> import numpy as np
>>> a = np.array([[1, 2, 3], [2, 3, 4], [1, 2, 3], [3, 4, 5]])
>>> a
array([[1, 2, 3],
[2, 3, 4],
[1, 2, 3],
[3, 4, 5]])
>>> np.array([np.array(x) for x in set(tuple(x) for x in a)]) # or "list(x) for x in set[...]"
array([[3, 4, 5],
[2, 3, 4],
[1, 2, 3]])
oczywiście, to naprawdę nie działa, jeśli trzeba unikatowe wiersze w oryginalnej kolejności.
Nawiasem mówiąc, aby naśladować coś unique(a, 'columns')
, to po prostu transponować oryginalną tablicę, zrobić krok przedstawioną powyżej, a następnie przenieść z powrotem.
Widziałeś to: http://mail.scipy.org/pipermail/numpy-discussion/2009-August/044664.html – Amro
Widziałem to, ale nie ma takiego polecenia unique1d. Myślę, że usunęli to na nowej Numpy, nie jestem pewien. –
Spróbuj 'unique' zamiast' unique1d' - powinien działać przykład z tego wątku. – ars