问题描述
正如标题所示,我想在掩码数组上使用 numpy.argpartition
。我可以,但 .argpartition
不尊重掩码(它也会发出警告消息通知用户)。这没有用,因为掩码数据会破坏 .argpartition
的结果。
更换方法有什么建议吗?我需要知道大型一维数组中 k 个最小值的索引。
当前的想法:
a) 为掩码数组编写我自己的 .argpartition
实现
b) 我当前的数据集具有以下特征:屏蔽值都是负值(这就是它们破坏了对最小值的搜索的原因)。 这导致了两种解决方案
- 我可以对它们进行排序并为掩码值分配一个非常大的数字......如果我这样做,我觉得我可以放弃使用掩码数组。
- 我可以计算被屏蔽元素的数量 = p,然后在 p+k 元素上计算
argpartition
。从列表中删除 p 元素。
a) 或 b) 看起来都不是 Pythonic 或优雅。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)