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

Oha*_*had 1 python arrays boolean numpy python-3.x

我有一个 True 和 False 布尔数组 2*n。

array([[False,  True],
       [False,  True],
       [False,  True],
       ...,
       [False,  True],
       [False,  True],
       [False,  True]])
Run Code Online (Sandbox Code Playgroud)

我想要的是一个新向量,如果两个值中的任何一个为 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
Run Code Online (Sandbox Code Playgroud)

但这很长而且不是pythonic。该数组是 2n 或 4n。所以它应该涵盖这些选项(我的 for 循环没有)但如果需要,两个带有 if for 大小的解决方案是可行的。我也尝试使用 numpy.isin() 命令。但它适用于每个单元格。我需要每行。

Jia*_*nyu 5

正如已经指出的答案,您可以使用numpy.all()来解决它。

一个没有任何循环的更简单的公式是:

np.all(minindex, axis=1)
Run Code Online (Sandbox Code Playgroud)