python - 查找符合条件的第一个值,而不是其索引
问题描述
我有一个包含这些元素的数组:
array= [21558 43101 64638 86173 107701 129232 150775 172355 193864 215457
237071 258586 280130 301687 23255 344790 366285 387838 409365 430856
452367 473893 495456 516955 538543 560110 581641 603188]
在我的程序中,有一个n
随机排序的变量。我想要实现的目标非常简单,但我就是什么都做不了。
通过下面的行,我将找到大于的第一个值的索引n
value_index=np.where(array > n)[0][0]
我需要的是找到它所代表的值,而不是索引。
当然,我可以简单地插入value_index
变量并在列表中调用该值,但我正在尝试尽可能高效。
谁能帮我找到找到这个值的最快方法?
解决方案
Numpy 通常不擅长在不先计算其余值的情况下获得第一个。没有等同于 Pythons 的
next(x for x in array if x > n)
相反,您必须计算 的掩码x > n
,并获得它的第一个索引。有比这样做更好的方法np.where
:
ind = np.flatnonzero(array > n)[0]
或者
ind = np.argmax(array > n)[0]
无论哪种情况,获得价值的最佳选择是
array[ind]
推荐阅读
- python - 如何通过 Python 代码向属于另一个组织的 slack 人员发送直接消息?
- python - 循环给出多个布尔值
- c# - 在外部项目中使用 ASP.Net Core 5 API 中的服务层
- python - 对于 pandas 数据框列中的每个唯一值,进行一次 go.Figure 和 scatter t
- c - 为什么 ucontext_t 执行后不返回 un_lick?
- java - Ingress 不适用于 Kubernetes 基础架构
- php - 在多级类别(亲子关系)中,一个孩子可以有两个或多个父母吗?
- flutter - Flutter 自定义滚动视图延迟渲染
- latex - FontAwesome - 更改图标颜色 Latex
- reactjs - 如何使用 React-Leaflet v3 挂钩到 tileload 事件