小编典典

删除numpy数组的重复行

python

如何删除二维numpy数组的重复行?

data = np.array([[1,8,3,3,4],
                 [1,8,9,9,4],
                 [1,8,3,3,4]])

答案应该如下:

ans = array([[1,8,3,3,4],
             [1,8,9,9,4]])

如果有两行相同,那么我想删除一个“重复”行。


阅读 213

收藏
2020-12-20

共1个答案

小编典典

您可以使用numpy unique。由于您需要唯一的行,因此我们需要将它们放入元组:

import numpy as np

data = np.array([[1,8,3,3,4],
                 [1,8,9,9,4],
                 [1,8,3,3,4]])

_只是应用np.uniquedata_阵列会导致这样的:

>>> uniques
array([1, 3, 4, 8, 9])

打印出列表中的唯一元素 。因此,将它们放入元组会导致:

new_array = [tuple(row) for row in data]
uniques = np.unique(new_array)

打印:

>>> uniques
array([[1, 8, 3, 3, 4],
       [1, 8, 9, 9, 4]])

更新

在新版本中,您需要设置 np.unique(data, axis=0)

2020-12-20