numpy数组去掉重复的行,保留唯一的行数据
有以下numpy.array数据:
>>> original_array #
array([[1, 1, 1, 0, 0, 0],
[0, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 0, 0],
[1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 1, 0]])
期待去掉重复的行结果为:
>>> unique_rows #
array([[1, 1, 1, 0, 0, 0],
[0, 1, 1, 1, 0, 0],
[1, 1, 1, 1, 1, 0]])
解决方法:
NumPy 1.13 可以使用unique,只需选择axis,即可在任何N维数组中选择唯一值。
去掉重复,保留唯一行
unique_rows = np.unique(original_array, axis=0)
需要注意的是,它会把重复的行留下其中一行,并不会删除所有重复的行。
删除所有重复的行:
使用reture_counts
arr, uniq_cnt = np.unique(original_array, axis=0, return_counts=True)
original_array= arr[uniq_cnt==1]
使用uniq_cnt为1作为过滤。