或np.all()函数中的语句

时间:2019-05-30 13:11:14

标签: python numpy

给出2D数组,我想找到异构的行。

我有一个2D numpy数组,并应用了导致另一个2D numpy布尔值数组的条件。 现在,我想查找既不是全为True也不是全非False的行。 是否可以在np.all中应用or语句?

x = np.array([[1,1,1,1,1,1],
              [2,2,2,1,2,2],
              [3,3,3,3,3,3,]])

y = x > 1

z = ~np.all((y == True) or (y == False), axis=1)
  

ValueError:具有多个元素的数组的真值是   暧昧。使用a.any()或a.all()

一个标记异类行的新数组[bool]。 例如:[False,True,False]

非常欢迎:其他解决方案或功能的提示。

1 个答案:

答案 0 :(得分:0)

您需要两个np.all之前或之后。

x = np.array([[1,1,1,1,1,1],
              [2,2,2,1,2,2],
              [3,3,3,3,3,3,]])

y = x > 1

z = ~(np.all(y == True, axis=1) | np.all(y == False, axis=1))