确定数组中 N 个非零最小值的索引
Posted
技术标签:
【中文标题】确定数组中 N 个非零最小值的索引【英文标题】:Determine indices of N number of non-zero minimum values in array 【发布时间】:2021-07-11 20:19:48 【问题描述】:我有一个 x 大小的数组,需要确定 n 个最小值的索引。我发现这个链接 (I have need the N minimum (index) values in a numpy array) 讨论了如何获取多个最小值,但是当我的数组中有零时它就不能正常工作了。
例如:
x = [10, 12, 11, 9, 0, 1, 15, 4, 10]
n = 3
我需要找到 3 个最低的非零值的索引,所以结果是
non_zero_min_ind = [5, 7, 3]
它们不需要按任何顺序排列。我正在尝试在 python 3 中执行此操作。任何帮助将不胜感激。
【问题讨论】:
为什么一定要用numpy? 【参考方案1】:使用 numpy:
import numpy as np
y = np.argsort(x)
y[np.array(x)[y]!=0][:n]
array([5, 7, 3])
【讨论】:
如果有多个0怎么办?以上是关于确定数组中 N 个非零最小值的索引的主要内容,如果未能解决你的问题,请参考以下文章
Python | 快速获取某一列数组中前 N 个最大值/最小值的索引 | 三种方法总结