python - 在python中的numpy数组中查找具有条件的第一个元素的索引
问题描述
我正在尝试找到大于阈值的第一个元素的索引,如下所示:
index = 0
while timeStamps[index] < self.stopCount and index < len(timeStamps):
index += 1
这可以在单行中完成吗?我发现:
index = next((x for x in timeStamps if x <= self.stopCount), 0)
我不确定这个表达式是做什么的,它似乎总是返回 0... 有人能指出错误并解释这个表达式吗?
解决方案
另一种选择是使用np.argmax
(有关详细信息,请参阅此帖子)。所以你的代码会变成这样
(timeStamps > self.stopCount).argmax()
需要注意的是,如果条件永远不满足,argmax
则将返回 0。
推荐阅读
- arduino - 如何从arduino中的其他脚本调用函数
- git - 如何比较两个 Git 分支并仅列出功能/主题(第二个)分支中的新提交
- python - 为什么 MATLAB 的 imclose 和 Opencv Python 的 MORPH_CLOSE 显示不同的输出?
- wpf - 两个 DataTemplate 之间的绑定仅在一个方向上起作用
- php - 安装 brexis / laravel-workflow 问题
- php - Laravel 没有在种子中使用 faker 语言环境
- r - r dplyr::case_when 错误:必须是字符向量,而不是双精度向量
- python-3.x - 如何使用 Python 3 列出所有与 Regex 对象匹配的模式?
- c# - 在 C# 中将 SqlDataReader 转换为对象列表的最快方法
- android - 将远程图像加载到 Android 中的 NotificationCompat MessagingStyle Message SetData