gpt4 book ai didi

python - 从二维数组中删除交换的重复项

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:08 24 4
gpt4 key购买 nike

如果我有一个 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 轴排序,然后使用 uniquereturn_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]])

关于python - 从二维数组中删除交换的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57829599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com