我有以下的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)。