我有一个numpy产品生成器(使用meshgrid
),它找到两个数组的产品(类似于itertools.product
)。问题是它生成的数组包含相同的元素,但重新排列(因此numpy.unique
不会对它们进行过滤)。
例如,如果我有这样的数组:
[[0, 0]
[1, 0]
[0, 1]
[1, 1]]
我需要这样的结果:
[[0, 0]
[1, 0]
[1, 1]]
由于[1, 0]
和[0, 1]
与我的目的相同。
答案 0 :(得分:2)
如果您有numpy >= 1.13.0
,则可以在之前排序的数组上使用np.unique
:
>>> a = np.array([[0, 0], [1, 0], [0, 1], [1, 1]])
>>> a
[[0 0]
[1 0]
[0 1]
[1 1]]
>>> b = np.unique(np.sort(a, axis=1), axis=0)
>>> b
[[0 0]
[0 1]
[1 1]]