python - 查找 numpy 数组中第 n 次超出特定值的情况

标签 python arrays numpy

这是此处提出的问题的扩展: 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/

相关文章:

python - Tkinter PIL 图像不显示在函数内部

Python - 导入包失败

python - 使用 pywinauto 自动化 wbemtest

c - 如何在C中的数组中存储字符串和整数

python - 在Python中使用列表理解创建字典时获取重复值

mysql - 内爆数组 -> 检查字符 -> 插入数据库

javascript - p5.j​​s 数组元素之间的碰撞

python - 将 1.2GB 的边列表转换为稀疏矩阵

python - 如何从 fft 函数获取频率轴?

python - 如何根据行从一个数据框中获取值?