这是此处提出的问题的扩展: Numpy first occurrence of value greater than existing value
N = 10000
aa = np.arange(-N,N)
在这个numpy数组中,我想找到数组第10次超过0的索引。要找到它第一次超过 0 的位置,我可以简单地执行以下操作:
np.argmax(aa>0.0)
最佳答案
您可以按照与“第一次”案例相同的原则进行工作,只是中间步骤稍微复杂一些。
从代表您的条件的 bool 数组开始:
cond = aa > 0
将数组中的 True/False 值转换为计数:
counts = np.cumsum(cond)
搜索您要查找的计数的第一次出现:
idx = np.searchsorted(counts, 10)
请记住,最后一行中的 10
指的是满足条件的第十个值,第一个值的计数为 1
。
或者,您可以将条件数组转换为索引:
indices, = np.nonzero(cond)
idx = indices[9]
请注意,在此设置中,第十个值将位于索引 9
处。
关于python - 查找 numpy 数组中第 n 次超出特定值的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38949308/