gpt4 book ai didi

python - 检查 numpy 数组是否在范围内

转载 作者:行者123 更新时间:2023-12-01 01:39:11 29 4
gpt4 key购买 nike

寻找一种更有效的方法来检查 numpy 数组中的项目是否属于一组最小值和最大值中的任何一个(或至少匹配一次)。我尝试过 any()np.any()all() 但这些对我来说是较新的概念。

y_minmax_bounds = [[1.1, 2.0], [3.3, 6.21], [5.75, 10.0]]
y = np.array([1.5, 2.5, 2, 6, 8, 10])
withinbounds = [((y > min) & (y < max))for min, max in y_minmax_bounds]
print(withinbounds)

返回:

[array([True, False, False, False, False, False]), 
array([False, False, False, True, False, False]),
array([False, False, False, True, True, False])]

经过数组解决:

[True False False True True False]

我可以循环遍历y_minmax_bounds,但是考虑到要检查的 np.array 非常大,这似乎效率低下。实际问题还将在多个维度上强制执行此操作(x 上的 x_minmax_bounds,z 上的 z_minmax_bounds)。

最佳答案

使用 Numpy 广播

mn, mx = np.array(y_minmax_bounds).T
x = y[:, None]

((x > mn) & (x < mx)).any(1)

array([ True, False, False, True, True, False])

关于python - 检查 numpy 数组是否在范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069575/

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