我有一个数组 a
,我想找到 a
中给定值仍然大于的最大元素的位置。
在这个例子中:
a = np.array([0, 50, 5, 52, 60])
v = 55
v
大于的最大元素是 52
(索引 3)所以我想返回 3。
numpy 函数 argmax()
不适用于此目的,因为它返回第一个元素。使用 numpy 执行此操作的快速且正确的方法是什么?
最佳答案
您可以结合argmax
与 where
:
>>> np.nanargmax(np.where(a < v, a, np.nan))
3
np.where
替换 v
以上的所有值至 nan
在它适用之前nanargmax
(在计算中忽略 nan
s):
>>> np.where(a < v, a, np.nan)
array([ 0., 50., 5., 52., nan])
关于python - 在numpy数组中查找最大元素比较的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43707707/