Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python np.any()多个逻辑语句_Python_Numpy - Fatal编程技术网

Python np.any()多个逻辑语句

Python np.any()多个逻辑语句,python,numpy,Python,Numpy,我有一个具有多个值的numpy数组(例如:v=np.array([0.81597636,0.93198024])。 我想检查v中的任何值是否在xmin和xmax之间。我尝试了以下操作: 如果np.any(xmin您需要分别检查这两个条件,并将它们与按位and组合: v = np.array([0.81597636, 0.93198024]) (v > 0.85) & (v < 1.) # array([False, True]) v=np.array([0.8159763

我有一个具有多个值的numpy数组(例如:
v=np.array([0.81597636,0.93198024])
。 我想检查
v
中的任何值是否在
xmin
xmax
之间。我尝试了以下操作:


如果np.any(xmin您需要分别检查这两个条件,并将它们与
按位and组合:

v = np.array([0.81597636, 0.93198024])
(v > 0.85) & (v < 1.)
# array([False,  True])
v=np.array([0.81597636,0.93198024])
(v>0.85)和(v<1.)
#数组([False,True])
请注意,第一次比较的结果是:

0.85 < v
# array([False,  True])
0.85
因此请注意,执行以下操作将引发错误:

0.85 < v < 1.
0.85
ValueError:包含多个元素的数组的真值不明确。请使用a.any()或a.all()


这背后的原因是,您正在将一个
1x2
数组与一个
int
数组进行比较,这会导致另一个
1x2
数组,当然,结果是不明确的。您需要将一个布尔数组与另一个布尔数组进行比较,这就是为什么必须如上所示链接条件的原因。

这里有一种使用列表Com的替代方法把握

v = np.array([0.81597636, 0.93198024])
xmin, xmax = 0.8, 0.9
check_list = [True if xmin <= i <= xmax else False for i in v]

当您有一个Numpy数组时,使用列表理解是否明智?
[True, False]