我想要找到一種方法,如何通過僅採用第一列中唯一的元素來創建多維數組中的新數組,例如,如果我有一個數組如何通過多維數組的第一列搜索唯一元素
[[1,2,3],
[1,2,3],
[5,2,3]]
手術後我想獲得這個輸出
[[1,2,3],
[5,2,3]]
顯然,第二的第三列不必是唯一的。
感謝
我想要找到一種方法,如何通過僅採用第一列中唯一的元素來創建多維數組中的新數組,例如,如果我有一個數組如何通過多維數組的第一列搜索唯一元素
[[1,2,3],
[1,2,3],
[5,2,3]]
手術後我想獲得這個輸出
[[1,2,3],
[5,2,3]]
顯然,第二的第三列不必是唯一的。
感謝
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]]
既然你正在尋找保持第一行的第一列唯一,你可以只使用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]])
剛剛看到numpy標籤;)+1 –
怎麼樣,如果你有'[[1,4,3],[1,2,3] ,[5,2,3]]'? –