找到索引的第一个出现并保留该行

时间:2016-11-30 16:21:46

标签: python numpy

我有一个包含以下内容的ndarray:

[0, 1]
[0, 5]
[1, 7]
[2, 9]
[2, 4]
[2, 4]
[3, 8]
[4, 2]
[4, 7]

现在我想在多行的第一个元素相同时只保留第一行。会导致:

[0, 1]
[1, 7]
[2, 9]
[3, 8]
[4, 2]

如何通过numpy实现这一目标?

1 个答案:

答案 0 :(得分:1)

将输入数据指定为:

x = np.array([
    [0, 1],
    [0, 5],
    [1, 7],
    [2, 9],
    [2, 4],
    [2, 4],
    [3, 8],
    [4, 2],
    [4, 7],
])

然后你可以使用numpy.uniquereturn_index设置为true(如推荐中提到的@divakar),以便找到第一个元素的唯一索引。

idx = numpyp.unique(x[:,0], return_index=True)[1]

然后您可以访问它们:

x[idx]

希望这有帮助。