删除2D数组中的重复索引



这里有一个2D numpy数组:

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

我想在索引1处删除与前一个索引对应的所有重复项,并得到如下输出:

np.array([[1,2],
[5,3]])

然而,当我尝试我的代码时,它出错了。下面是我的代码:

for x in range(0, len(arr)):
if arr[x][1] == arr[x-1][1]:
arr = np.delete(arr, x, 0)
>>> IndexError: index 3 is out of bounds for axis 0 with size 2

与其尝试从数组中删除,不如使用np.unique查找第二列中首次出现的唯一值的索引,并使用它将这些值拉出:

import numpy as np   
arr = np.array([[1,2],
[2,2],
[3,2],
[4,2],
[5,3]])
u, i = np.unique(arr[:,1], return_index=True)
arr[i]    
# array([[1, 2],
#       [5, 3]])

相关内容

  • 没有找到相关文章

最新更新