Python: 选择重复的元素(列表中的列表)并将其放入数组中?

Python: Selecting repeated elements (list in a list) and put it in an array?

如何制作:

[[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 1], [1, 0, 1], [1, 0, 1]]

到这个?

array([[1, 0, 0],
       [1, 0, 1]])

我试过了,但它只适用于 2 个重复元素。我希望它适用于任意数量的重复元素。

finalRes = []

for i in range(len(resList)-1):
    if resList[i] == resList[i+1]:
        finalRes.append(resList[i])

finalRes --> [[1, 0, 0], [1, 0, 0], [1, 0, 1], [1, 0, 1]]

使用itertools.groupby:

from itertools import groupby

lst = [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 1], [1, 0, 1], [1, 0, 1]]

result = [key for key, _ in groupby(lst)]
print(result)

输出

[[1, 0, 0], [1, 0, 1]]

您可以使用 numpy.unique 来查找数组中的唯一元素。

使用:

import numpy as np

arr = [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 1], [1, 0, 1], [1, 0, 1]]
unique_arr = np.unique(arr, axis=0)
print(unique_arr)

这会打印:

[[1 0 0]
 [1 0 1]]