2016-02-21 27 views
2

我想要找到一種方法,如何通過僅採用第一列中唯一的元素來創建多維數組中的新數組,例如,如果我有一個數組如何通過多維數組的第一列搜索唯一元素

[[1,2,3], 
[1,2,3], 
[5,2,3]] 

手術後我想獲得這個輸出

[[1,2,3], 
[5,2,3]] 

顯然,第二的第三列不必是唯一的。

感謝

+0

怎麼樣,如果你有'[[1,4,3],[1,2,3] ,[5,2,3]]'? –

回答

0
main = [[1, 2, 3], [1, 3, 4], [2, 4, 5], [3, 6, 5]] 
used = [] 
new = [[sub, used.append(sub[0])][0] for sub in main if sub[0] not in used] 
print(new) 
# Output: [[1, 2, 3], [2, 3, 4], [3, 6, 5]] 
4

既然你正在尋找保持第一行的第一列唯一,你可以只使用np.unique其可選return_index參數,它會給你第一次出現指數(因此滿足第一行標準)A[:,0]元素的唯一性,其中A是輸入數組。因此,我們將有一個量化的解決方案,像這樣 -

_,idx = np.unique(A[:,0],return_index=True) 
out = A[idx] 

採樣運行 -

In [16]: A 
Out[16]: 
array([[1, 2, 3], 
     [5, 2, 3], 
     [1, 4, 3]]) 

In [17]: _,idx = np.unique(A[:,0],return_index=True) 
    ...: out = A[idx] 
    ...: 

In [18]: out 
Out[18]: 
array([[1, 2, 3], 
     [5, 2, 3]]) 
+1

剛剛看到numpy標籤;)+1 –

相關問題