簡體   English   中英

基於另一個數組的元素從 numpy 數組中刪除元素

[英]removing elements from a numpy array based on elements of another array

我將如何 go 關於根據另一個數組的內容從數組中刪除元素,例如:

a = np.array([25, 2, 49, 3,90, 24, 45, 23, 9])
b = [3,45,23]
...

為了獲得 output:

>>>a
25, 2, 49,90,24, 9

如果 b 是常規列表或 numpy 數組,對我來說並不重要。 我見過很多類似的問題,但它們都基於索引刪除數組元素,或者如果它們確實基於元素刪除它們,則列表作為結果進行排序,例如使用 np.setdiff1d。 我想知道是否有任何 numpy 方法可以讓我做類似於 np.setdiff1d 但不對數組進行排序的事情。 如果沒有,還有其他方法可以刪除元素,因為我不熟悉 numpy。 提前致謝

只需使用argwhere()方法來查找存在於 'a' 中的那些 'b' 值的索引,並使用 isin( isin()方法來檢查 'b' 內的值是否存在於 'a' 中:-

indices=np.argwhere(np.isin(a,b))

最后只需使用delete()方法刪除這些值:-

a=np.delete(a,indices)

現在,如果您打印a您將獲得所需的 output:-

array([25,  2, 49, 90, 24,  9])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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