簡體   English   中英

Python,比較兩個numpy數組,查找組並刪除重復項

[英]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
對於其他數字,即24 ,也可以看到這一點。

我想比較這兩個數組,獲取組,即將a中的1b的相應索引匹配,對其他數字依此類推。 然后我想消除b中每個組中除第一個之外的所有組,即

result = np.array([100,200,100,400])

如果陣列b具有獨特組的值(即,不重復100對值13從陣列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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM