【发布时间】:2019-10-31 18:20:16
【问题描述】:
我知道我可以在我的数组上使用关系运算符来获取一个新的布尔值数组。下面的示例生成一个布尔数组,其形状与原始数组相同,但如果同一索引处的项目大于 0,则其值为 True,否则为 False。
>>> a = np. array ([ [0 , -2 ,5] , [ -1 , -8 , -12] ,[2 , 4, -9] ])
>>> z = a > 0
>>> print (a)
[[ 0 2 5]
[ 1 -8 -12]
[ 2 4 -9]]
>>> print (z)
[[ False True True ]
[ True False False ]
[ True True False ]]
我想知道是否有一种方法可以同时比较多个索引以检查两个或多个值是否大于 0。例如,检查每一行以查看第一个元素和第二个元素是否为大于 0。看起来不像
z = a[:,0] > 0 and a[:,1] > 0
会产生结果
array([False, False, True])
因为 a[0,1] = True 但 a[0,0] = False,a[1,0] = True 但 a[0,1] = False,a[2,0] 和 a [0,2] 为 True,因此第一行返回 False,第二行返回 False,第三行返回 True
我想在没有循环的情况下完成所有这些
【问题讨论】:
-
np.logical_and(a[:, 0] > 0, a[:, 1] > 0)? -
(a[:,0]>0) & (a[:,1]>0)- 将比较与()分组并与元素&(或|)组合。