【发布时间】:2016-10-24 16:43:16
【问题描述】:
我有兴趣在满足特定条件(在我的情况下为中等阈值)的一维 NumPy 数组中获取最小值的位置。例如:
import numpy as np
limit = 3
a = np.array([1, 2, 4, 5, 2, 5, 3, 6, 7, 9, 10])
我想有效地屏蔽a 中所有低于限制的数字,这样np.argmin 的结果将为 6。是否有一种计算成本低廉的方法来屏蔽不满足条件的值然后申请np.argmin?
【问题讨论】:
-
您能解释一下为什么在您的问题中您说 np.argmin 是 6 吗?在这种情况下,它将是 0。如果你屏蔽了所有小于 3 的数字,那么你会得到 [4,5,5,3,6,7,9,10]。这个的 np.argmin 还不是 6。
-
@OneRaynyDay 我的猜测:OP 想到的掩码数组是
[--, --, 4, 5, --, 5, 3, 6, 7, 9, 10]。那么最小的元素是 3,它位于掩码数组的位置 6(从 0 开始计数)。这就是 MaxPowers 的回答中发生的情况。
标签: python arrays performance numpy