如何通过多维数组的第一列搜索唯一元素

Goe*_*237 3 python arrays numpy multidimensional-array

我正在尝试找到一种方法,通过仅采用第一列中唯一的元素来从多维数组创建新数组,例如,如果我有一个数组

[[1,2,3],
[1,2,3],
[5,2,3]]
Run Code Online (Sandbox Code Playgroud)

操作后我想得到这个输出

[[1,2,3],
[5,2,3]]
Run Code Online (Sandbox Code Playgroud)

显然,第二列和第三列不需要是唯一的。

谢谢

Div*_*kar 6

由于您希望保留第一列的第一行唯一性,因此您可以使用np.unique其可选return_index参数,该参数将为您提供元素唯一性中第一个出现的索引(从而满足第一行条件)A[:,0],其中A是输入数组。因此,我们将有一个矢量化解决方案,如下所示 -

_,idx = np.unique(A[:,0],return_index=True)
out = A[idx]
Run Code Online (Sandbox Code Playgroud)

样本运行 -

In [16]: A
Out[16]: 
array([[1, 2, 3],
       [5, 2, 3],
       [1, 4, 3]])

In [17]: _,idx = np.unique(A[:,0],return_index=True)
    ...: out = A[idx]
    ...: 

In [18]: out
Out[18]: 
array([[1, 2, 3],
       [5, 2, 3]])
Run Code Online (Sandbox Code Playgroud)