我有以下 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
)。
关于python - 在 numpy 中查找最大值的索引排除零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64945925/