[英]Python, compare two numpy arrays, find groups and remove duplicates
我有兩個數組:
a = np.array([1,2,2,3,4,1,2,4,3,3])
b = np.array([100,200,200,100,400,100,200,400,100,100])
正如你所看到的,有兩個1
的中a
和中完全相同的指標,我們可以看到兩個100
的在b
。 您可以在a
看到三個3's
並且在完全相同的索引中,我們可以再次看到三個100
。
對於其他數字,即2
和4
,也可以看到這一點。
我想比較這兩個數組,獲取組,即將a
中的1
與b
的相應索引匹配,對其他數字依此類推。 然后我想消除b
中每個組中除第一個之外的所有組,即
result = np.array([100,200,100,400])
如果陣列b
具有獨特組的值(即,不重復100對值1
和3
從陣列a
),問題將是簡單地使用解決np.unique
。 但是由於數組a
中的兩個數字在數組b
具有相同的組號,我發現這很困難。
獲取a
唯一值的索引,並使用這些索引從b
獲取相應的值:
indices = np.unique(a, return_index=True)[1]
b[indices]
結果:
array([100, 200, 100, 400])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.