numpy 計算兩個數組重複程度

最近有個需求,是做兩個數組重複程度計算,麻煩就麻煩在單個數組的元素有可能重複,處理思路如下:
1. 找到重複元素
2. 元素個數統計,利用np.bincount轉換,即元素個數統計到元素轉化的索引
3. 統計相同元素匹配個數

具體代碼如下:

# arr1, arr2都是np.array類型
# 找到重複元素(交集)
inters = np.intersect1d(arr1, arr2)
# 元素個數索引轉換
bc1 = np.bincount(arr1)
bc2 = np.bincount(arr2)
# 統計相同元素匹配個數
same_count_list = [min(bc1[x], bc2[x]) for x in inters]
same_count = sum(same_count_list)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章