具有复杂条件的 Numpy Select 索引

Numpy Select indices with complex conditions

简单的问题...希望...

我有一个矩阵 a ,大小为 (n x m)

a = np.matrix([[1,2,3],[3,2,1],[6,4,1]])

并且我想针对以下条件提取大小为 (n x m) 的布尔矩阵 b

b = 3 < a > 7 and a != 6

但是它抛出以下错误。

The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

任何帮助,因为我被困住了。

干杯!

您不能将 and 与数组一起使用,因为您试图将单个值与必须使用 & 的数组进行比较,还需要将条件括在括号中,因为运算符优先级:

In [56]:

a[(a > 3 ) & (a < 7) & (a != 6)]
Out[56]:
matrix([[4]])