我有一个(x,y,z)点的列表,表示许多点的笛卡尔坐标。我需要选择仅(x,y)点不同的(x,y,z)点。
我提出了以下代码,它们基于唯一(x,y,z)或仅唯一(x,y)选择(x,y,z)。
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-1)维点过滤n维点?