我有以下numpy的:
e = np.array([0, -1.3, 0, -3.9, 0, -0.9, 0])
我想在列表中找到最大值的索引,但要排除0。
下面的代码示例返回列表中的第一个元素,因为其值为0。
result = np.argmax(e)
print(result)
但我不想在确定最大值时考虑零:
预期结果应该是5
具有-0.9
值的元素的索引。
我不想编写将在列表上迭代运行的代码。
有任何想法吗?
一种可能的方法是:
import numpy as np
e = np.array([0, -1.3, 0, -3.9, 0, -0.9, 0])
result = np.nanargmax(np.where(e != 0, e, np.nan))
print(result)
输出量
5
请注意,这不会更改输入数组(在这种情况下为e
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句