简短的答案是他们没有。
对numpy数组进行任何形式的逻辑运算都会返回一个布尔数组。(即__gt__
,,__lt__
等等都返回给定条件为true的布尔数组)。
例如
x = np.arange(9).reshape(3,3)
print x > 5
产量:
array([[False, False, False],
[False, False, False],
[ True, True, True]], dtype=bool)
这就是为什么类似的东西if x > 5:
如果x
是一个numpy数组会引发ValueError的原因。它是True / False值的数组,而不是单个值。
此外,numpy数组可以由布尔数组索引。例如,在这种情况下,x[x>5]
yields [6 7 8]
。
老实说,您实际需要的很少,numpy.where
但它只返回布尔数组为的索引True
。通常,您可以使用简单的布尔索引执行所需的操作。