2017-07-16 76 views
1

我有一個numpy產品生成器(使用meshgrid),它可以找到兩個陣列的產品(類似於itertools.product)。問題是它會生成包含相同元素但重新排列的數組(因此numpy.unique不會對它們進行過濾)。刪除Numpy中的重新排列陣列

舉例來說,如果我有一個這樣的數組:

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

我需要這樣一個結果:

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

由於[1, 0][0, 1]是我的目的是相同的。

回答

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