gpt4 book ai didi

python - 基于多个范围从数组中检索间隔

转载 作者:行者123 更新时间:2023-12-04 09:44:41 25 4
gpt4 key购买 nike

假设我有一个名为 a 的 Numpy 数组:

a = np.array([2,3,8,11,30,39,44,49,55,61])

我想根据其他两个数组检索多个间隔:
l = np.array([2,5,42])
r = np.array([10,40,70])

做一些与此等效的事情:
a[(a > l) & (a < r)]

以此作为所需的输出:
Out[1]: [[3 8],[ 8 11 30 39],[44 49 55 61]]

当然我可以做一个简单的 for循环迭代 lr ,但现实生活中的数据集很大,所以我想尽可能地防止循环。

最佳答案

鉴于输出的参差不齐,您无法避免循环。但是我们应该在迭代时尽量减少计算。因此,这是一种在迭代时简单地切入输入数组的方法,因为我们将大部分计算部分使用 searchsorted 获取每组的开始、停止索引。 ——

lidx = np.searchsorted(a,l,'right')
ridx = np.searchsorted(a,r,'left')
out = [a[i:j] for (i,j) in zip(lidx,ridx)]

关于python - 基于多个范围从数组中检索间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62189875/

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