Python 如果一行至少包含一个false,请检查numpy数组

Python 如果一行至少包含一个false,请检查numpy数组,python,arrays,python-3.x,numpy,boolean,Python,Arrays,Python 3.x,Numpy,Boolean,我有一个2*n的真布尔和假布尔数组 array([[False, True], [False, True], [False, True], ..., [False, True], [False, True], [False, True]]) 我想要的是一个新的向量,可以在另一个数组中,如果两个值中的任何一个为False,则该数组具有False。 我可以创建一个循环,检查行中的每个值,并生成一个新的向

我有一个2*n的真布尔和假布尔数组

array([[False,  True],
       [False,  True],
       [False,  True],
       ...,
       [False,  True],
       [False,  True],
       [False,  True]])
我想要的是一个新的向量,可以在另一个数组中,如果两个值中的任何一个为False,则该数组具有False。 我可以创建一个循环,检查行中的每个值,并生成一个新的向量。但我猜它很慢

boidx = np.empty(len(minindex), dtype=bool)

for idx in range(len(minindex)):
    if minindex[idx,0] and minindex[idx,1]:
        boidx[idx]=True
    else:
        boidx[idx]=False
但这是很长的,不是蟒蛇式的。 阵列为2n或4n。所以它应该涵盖这些选项(我的for循环没有) 但如果需要的话,两个解决方案的规模是可行的。
我还尝试使用numpy.isin()命令。但它对每个细胞都有效。我需要每行。

如果我理解正确,pythonic解决方案可以使用:

你会得到:

[假假假假假真]

另一种解决方案是使用
prod

boidx = np.array([bool(i.prod()) for i in minindex])
你会得到同样的结果


正如@Jianyu所建议的,这条路肯定会更快:


boidx=np.all(minindex,axis=1)
如果我理解正确,pythonic解决方案可以使用:

你会得到:

[假假假假假真]

另一种解决方案是使用
prod

boidx = np.array([bool(i.prod()) for i in minindex])
你会得到同样的结果


正如@Jianyu所建议的,这条路肯定会更快:


boidx=np.all(minindex,axis=1)

作为已经指出的答案,您可以使用来解决它

没有任何循环的更简单公式为:

np.all(minindex, axis=1)

正如一个已经指出的答案,您可以使用来解决它

没有任何循环的更简单公式为:

np.all(minindex, axis=1)

@实际上,我不确定
np.logical_和(minindex[:,0],minindex[:,1])
是否会更快。使用
np.all
though@sentence实际上,我不确定
np.logical_和(minindex[:,0],minindex[:,1])
是否会更快。使用
np肯定会看起来更整洁。不过,所有的