如果我有一个numpy数组
[[0 1]
[0 5]
[1 0]
[1 2]
[2 1]
[2 3]
[2 4]
[2 5]
[3 2]
[3 4]
[4 2]
[4 3]
[5 0]
[5 2]]
由于[0,1]和[1,0]都存在,因此我想删除其中任何一个。
所以基本上,如果数组中的[x,y] = [y,x],则删除[x,y]或[y,x]中的任何一个
最终输出应为
[[0 1]
[0 5]
[1 2]
[2 3]
[2 4]
[2 5]
[3 4]]
已删除的元素应为
[[1 0]
[2 1]
[3 2]
[4 2]
[4 3]
[5 0]
[5 2]]
答案 0 :(得分:1)
沿轴0
排序,然后将unique
与return_index
一起进行重复数据删除。
u = np.sort(arr, axis=1)
_, idx = np.unique(u, axis=0, return_index=True)
arr[idx]
array([[0, 1],
[0, 5],
[1, 2],
[2, 3],
[2, 4],
[2, 5],
[3, 4]])