我有一个包含以下内容的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实现这一目标?
答案 0 :(得分:1)
将输入数据指定为:
x = np.array([
[0, 1],
[0, 5],
[1, 7],
[2, 9],
[2, 4],
[2, 4],
[3, 8],
[4, 2],
[4, 7],
])
然后你可以使用numpy.unique
将return_index
设置为true(如推荐中提到的@divakar),以便找到第一个元素的唯一索引。
idx = numpyp.unique(x[:,0], return_index=True)[1]
然后您可以访问它们:
x[idx]
希望这有帮助。