NumPy 如何擦除数组内存在于另一数组的元素
NumPy 剔除数组指定元素的实现参考
需求说明
有两个NumPy数组:
- 全量索引数组为
indices = numpy.arange(9),包含元素[0,1,2,3,4,5,6,7,8] - 待剔除的元素数组取值不固定:可能和全量数组完全无重叠,也可能是类似
[2,4,7]这样的部分值
目标是得到剔除所有待剔除元素后的剩余数组。以剔除[2,4,7]为例,预期输出为[0,1,3,5,6,8]。
早期尝试的问题
最初想到的方案是把两个数组都转为Python原生set,通过取差集拿到剩余元素。这个方法虽然能得到正确的元素集合,但运算结果是set类型,直接把set传入numpy.array()构造函数,无法得到格式符合要求的标准NumPy数组。
最终解决方法
得到两个数组的集合差集结果后,先把差集转换为Python列表,再将列表传入numpy.array()构造NumPy数组,即可得到符合要求的输出。
这份思路的作者在发布问题时,已经通过上述方法自行解决了问题,相关经验也可为后续碰到同类需求的开发者提供参考。
内容的提问来源于stack exchange,提问作者devor110
相关产品推荐
相关产品推荐

