【发布时间】:2021-04-13 02:47:23
【问题描述】:
我有一个由 给出的集合列表,
sets1 = [{1},{2},{1}]
当我使用 numpy 的 unique 在此列表中找到唯一元素时,我得到
np.unique(sets1)
Out[18]: array([{1}, {2}, {1}], dtype=object)
可以看出,结果是错误的,因为{1}在输出中重复。
当我通过使相似元素相邻来更改输入中的顺序时,这不会发生。
sets2 = [{1},{1},{2}]
np.unique(sets2)
Out[21]: array([{1}, {2}], dtype=object)
为什么会发生这种情况?还是我的做法有问题?
【问题讨论】:
-
我不确定为什么它不起作用,但我怀疑这与
sets1.sort()不会更改列表顺序有关。我认为您需要创建一个函数f以根据您想要的任何标准对集合进行排序,然后将sets1.sort(key=f)传递给np.unique()