gpt4 book ai didi

python - 查找限定输入值的 numpy 数组值

转载 作者:太空狗 更新时间:2023-10-30 02:18:02 24 4
gpt4 key购买 nike

我有一个值,比如 2016 和一个排序的 numpy 数组:[2005, 2010, 2015, 2020, 2025, 2030]。在绑定(bind) 2016 的数组中查找 2 个值的 pythonic 方法是什么。在这种情况下,答案将是一个数组 [2015、2020]。

不知道除了循环之外该怎么做,但希望有一个更基于 numpy 的解决方案

--编辑:

你可以假设你永远不会得到数组中的值,我为此进行了预过滤

最佳答案

一个直接的方法是使用 np.searchsorted -

idx = np.searchsorted(A,B,'left')
out = A[idx],A[idx+1]

解释

输入是-

In [27]: A
Out[27]: [2005, 2010, 2015, 2020, 2025, 2030]

In [28]: B
Out[28]: 2015

使用 searchsorted 找到 B 应该位于 A 中的索引以保持排序性质。这将对应于下限指数。因此,对于两个边界值,使用 indexindex+1 索引到 A -

In [29]: idx = np.searchsorted(A,B,'left')

In [30]: idx
Out[30]: 2

In [31]: A[idx],A[idx+1]
Out[31]: (2015, 2020)

关于python - 查找限定输入值的 numpy 数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37824040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com