如何有效地检查numpy数组中是否包含给定范围内的项?

2024-10-01 09:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个numpy数组,名为a,我想检查它是否包含一个由两个值指定的范围内的项。在

import numpy as np
a = np.arange(100)

mintrshold=33
maxtreshold=66

我的解决方案:

^{pr2}$

你能给我一个更有效的,Python式的方法吗?在


Tags: 方法importnumpyasnp数组解决方案arange
2条回答

Numpy数组不能很好地与pythonic a < x < b配合使用。但这里有个函数:

np.logical_and(a > mintrshold, a < maxtreshold)

或者

^{pr2}$

在你的特殊情况下。基本上,你应该把两个元素结合起来。有关详细信息,请查找logic funcs

除了纯Numpy答案之外,我们还可以使用itertools

import itertools

bool(list(itertools.ifilter(lambda x: 33 <= x <= 66, a)))

对于较小的阵列,这就足够了:

^{pr2}$

相关问题 更多 >