Я использую массив 2D-форм для хранения пар долготы + широты. В какой-то момент мне нужно объединить два из этих 2D-массивов, а затем удалить все повторяющиеся записи. Я искал функцию, похожую на numpy.unique, но мне не повезло. Любая реализация, о которой я думал, выглядит очень «неоптимизированной». Например, я пытаюсь преобразовать массив в список кортежей, удалить дубликаты с помощью набора, а затем снова преобразовать в массив:
coordskeys = np.array(list(set([tuple(x) for x in coordskeys])))
Есть ли какие-то существующие решения, чтобы не изобретать велосипед?
Чтобы было понятно, я ищу:
>>> a = np.array([[1, 1], [2, 3], [1, 1], [5, 4], [2, 3]])
>>> unique_rows(a)
array([[1, 1], [2, 3],[5, 4]])
Кстати, я хотел использовать для этого только список кортежей, но списки были настолько большими, что они потребляли мои 4 ГБ ОЗУ + 4 ГБ подкачки (массивы numpy более эффективны с точки зрения памяти).