python - 根据另一个数组的元素从numpy数组中删除元素

标签 python arrays numpy

我将如何根据另一个数组的内容从数组中删除元素,例如:

a = np.array([25, 2, 49, 3,90, 24, 45, 23, 9])
b = [3,45,23]
...
为了获得输出:
>>>a
25, 2, 49,90,24, 9
b 是常规列表还是 numpy 数组对我来说并不重要。我见过很多类似的问题,但它们都根据索引删除数组元素,或者如果它们确实根据元素删除它们,则列表会作为结果进行排序,例如使用 np.setdiff1d。我想知道是否有任何 numpy 方法可以让我执行类似于 np.setdiff1d 的操作,但无需对数组进行排序。如果不是,还有另一种方法来删除元素,因为我不熟悉 numpy.提前致谢

最佳答案

只需利用 argwhere()找到存在于 'a' 和 isin() 中的那些 'b' 值的索引的方法检查 'b' 中的值的方法是否存在于 'a' 中:-

indices=np.argwhere(np.isin(a,b))
最后只需使用 delete() 删除这些值方法:-
a=np.delete(a,indices)
现在,如果您打印 a你会得到你想要的输出:-
array([25,  2, 49, 90, 24,  9])

关于python - 根据另一个数组的元素从numpy数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66695622/

相关文章:

python - Selenium 中发现元素的顺序

python - 转换遗留数据的文件格式

java - 如何让线程等到数组包含元素

python - 如何将不规则间隔的 x 和 y 坐标张量平均到具有特定单元大小的网格中?

python - 无法在 Python 中中止 (ctrl+c)

python - Pyinstaller 无法在 Python2.7 64 位 Ubuntu 中编译大型程序

ios - NSCopying 自定义对象数组

javascript - 如何下载本地数组或添加到postgres数据库

python - 如何使用 Python 中的调查权重计算 OLS 回归。

python - Numpy:当对数组数组应用 bool 掩码时,记录原始数组中的项目的最有效方法