给出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]
非常欢迎:其他解决方案或功能的提示。
答案 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))