簡體   English   中英

從數組中減去項目 / numpy

[英]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.

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