Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 移除numpy数组中的重复元组(彼此相邻的元组)_Python_Arrays_Numpy_Tuples - Fatal编程技术网

Python 移除numpy数组中的重复元组(彼此相邻的元组)

Python 移除numpy数组中的重复元组(彼此相邻的元组),python,arrays,numpy,tuples,Python,Arrays,Numpy,Tuples,我或多或少是python/numpy新手,我遇到了以下问题: 我有numpy数组,其中第一个元组和最后一个元组总是相同的。在这两个元组之间,有时会有重复的元组(只有紧挨着的元组),我想去掉它们。应保留使用的括号结构 我已经尝试了np.unique(例如),但它改变了我原来的顺序(必须保持)。我的示例数组如下所示: myarray = np.array([[[1,1],[1,1],[4,4],[4,4],[2,2],[3,3],[1,1]]]) myarray = np.arra

我或多或少是python/numpy新手,我遇到了以下问题:

我有numpy数组,其中第一个元组和最后一个元组总是相同的。在这两个元组之间,有时会有重复的元组(只有紧挨着的元组),我想去掉它们。应保留使用的括号结构

我已经尝试了
np.unique
(例如),但它改变了我原来的顺序(必须保持)。我的示例数组如下所示:

    myarray = np.array([[[1,1],[1,1],[4,4],[4,4],[2,2],[3,3],[1,1]]])
    myarray = np.array([[[1,1],[4,4],[2,2],[3,3],[1,1]]])
我需要一个如下所示的结果:

    myarray = np.array([[[1,1],[1,1],[4,4],[4,4],[2,2],[3,3],[1,1]]])
    myarray = np.array([[[1,1],[4,4],[2,2],[3,3],[1,1]]])

提前感谢您的支持

获取沿第二个轴的一次性偏移比较,并使用布尔索引进行选择-

myarray[:,np.r_[True,(myarray[0,1:] != myarray[0,:-1]).any(-1)]]
样本运行-

In [42]: myarray
Out[42]: 
array([[[1, 1],
        [1, 1],
        [4, 4],
        [4, 4],
        [2, 2],
        [3, 3],
        [1, 1]]])

In [43]: myarray[:,np.r_[True,(myarray[0,1:] != myarray[0,:-1]).any(-1)]]
Out[43]: 
array([[[1, 1],
        [4, 4],
        [2, 2],
        [3, 3],
        [1, 1]]])
或使用相等比较,然后查找所有匹配项-

In [47]: myarray[:,np.r_[True,~((myarray[0,1:] == myarray[0,:-1]).all(-1))]]
Out[47]: 
array([[[1, 1],
        [4, 4],
        [2, 2],
        [3, 3],
        [1, 1]]])

我想你的问题已经在这里得到了回答:OP需要保留原始顺序,这是
np.unique()
无法做到的。@VanDeWack
在这两个元组之间,有时会有重复的元组(只有**元组彼此紧挨着)**
。可能再次重复@SBylemans,链接的Q&A不涉及彼此相邻的问题)标准。是的,这正是我需要的解决方案。两个版本都适合我,谢谢!