为了账号安全,请及时绑定邮箱和手机立即绑定

如果存在于另一个数组中,则从一个数组中删除元素,保留重复项 - NumPy / Python

如果存在于另一个数组中,则从一个数组中删除元素,保留重复项 - NumPy / Python

小唯快跑啊 2021-06-18 22:28:35
我有两个数组A(len 为 380 万)和B(len 为 20k)。对于最小的例子,让我们来看这个案例:A = np.array([1,1,2,3,3,3,4,5,6,7,8,8]) B = np.array([1,2,8])现在我希望结果数组是:C = np.array([3,3,3,4,5,6,7])即,如果在B中找到任何值,则将A其从中删除A,如果没有则保留。我想知道是否有任何方法可以在没有for循环的情况下做到这一点,因为它是一个冗长的数组,因此需要很长时间才能循环。
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

我对 numpy 不是很熟悉,但是如何使用集合:

C = set(A.flat) - set(B.flat)

编辑:从评论来看,集合不能有重复的值。

所以另一种解决方案是使用 lambda 表达式:

C = np.array(list(filter(lambda x: x not in B, A)))


查看完整回答
反对 回复 2021-06-22
  • 3 回答
  • 0 关注
  • 386 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号