[英]substract items from array / numpy
org = [1,1,1,1,2,2,4]
remove = [1,1,2]
result = foo(org, remove)
# result = [1,1,2,4]
# two 1 are removed and one 2
我想從org
中刪除項目,但並非所有項目都具有相同的值 - 只有一個刪除remove
-array 中的每個項目
是否有 numpy function 這樣做?
根據 CJR 的評論,事實證明內置的Counter
理解減法並“做正確的事”。 它會默默地忽略第一個計數器中不存在的任何元素。
所以你可以做這樣的事情:
from collections import Counter
c1 = Counter(org)
c2 = Counter(remove)
result = list((c1 - c2).elements())
給出result = [1,1,2,4]
。
編輯:當然,這不一定會保留訂單。 而且,如果您知道 collections 無論如何都已經在開始時進行了排序,那么會有一種更有效的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.