删除Numpy中重新排列的数组

时间:2017-07-16 19:34:59

标签: python arrays numpy

我有一个numpy产品生成器(使用meshgrid),它找到两个数组的产品(类似于itertools.product)。问题是它生成的数组包含相同的元素,但重新排列(因此numpy.unique不会对它们进行过滤)。

例如,如果我有这样的数组:

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

我需要这样的结果:

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

由于[1, 0][0, 1]与我的目的相同。

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]]