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]]
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]]
如何制作:
[[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]]
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]]