确定数组中 N 个非零最小值的索引

Determine indices of N number of non-zero minimum values in array

我有一个 x 大小的数组,需要确定 n 个最小值的索引。我发现这个 link (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:

import numpy as np
y = np.argsort(x)
y[np.array(x)[y]!=0][:n]

array([5, 7, 3])