如果我有以下数组:
a = [4, -5, 10, 4, 4, 4, 0, 4, 4]
要获得三个最小值索引:
a1 = np.array(a)
print a1.argsort()[:3]
这输出以下内容,即可:
[1 6 0]
问题在于这包括-5
(索引1
)。
我怎么能做到这一点但忽略了数组的-5
?
答案 0 :(得分:2)
如果你正在寻找排除最小元素,你可以在切片时跳过元素:
>>> a = [4, 3, 10, -5, 4, 4, 4, 0, 4, 4]
>>> a1 = np.array(a)
>>> minimum_indexes= a1.argsort()[1:4]
>>> print a1[minimum_indexes]
[0 3 4]
答案 1 :(得分:2)
您可以在argsort
之后过滤掉您的具体数字:
>>> a = [4, -5, 10, 4, 4, 4, 0, 4, 4]
>>> a1 = np.array(a)
>>> indices = a1.argsort()
>>> indices = indices[a1[indices] != -5]
>>> print(indices[:3])
[6 0 3]
很容易改变你的状况。例如,如果您要过滤掉所有否定号码,请改用以下行:
>>> indices = indices[a1[indices] >= 0]