Фильтрация уникальных n-мерных координат только на основе (n-1) измерений - PullRequest
0 голосов
/ 31 января 2019

У меня есть список (x, y, z) точек, представляющих декартовы координаты многих точек.Мне нужно выбрать (x, y, z) точки, чьи только (x, y) точки различны.

Я придумал следующий код, который выбирает (x, y, z) только на основе уникального (x, y, z) или уникального (x, y).

def unique_points(x,y,z, xy_only = False):
    a,b,c = [],[],[]

    if xy_only is False:
       for i,j,k in set(zip(x,y,z)):
          a.append(i)
          b.append(j)
          c.append(k)
        return a,b,c

    elif xy_only is True:

       # storing unique points as keys
       points = dict()
       for i,j,k in zip(x,y,z):
          points[(i,j)] = (i,j,k)

       for i,j,k in points.values():
           a.append(i)
           b.append(j)
           c.append(k)
       return a,b,c

Хотелось бы узнать, есть ли какой-нибудь встроенный метод для достижения результата.Можно ли еще уменьшить этот код?

Кроме того, существует ли какой-либо общий способ фильтрации n-мерных точек на основе уникальных (n-1) размерных точек?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...