给定两个数组a=np.array([[1, 3], [3, 4]])
和b=np.array([2, 2])
。
目标:通过np.array([False, True])
等操作获取数组a>b
。即比较行(True
如果每对元素满足>
运算符False
)而不是元素比较(即我不想要获取{{1 }})。
类似于3维和(可选)N维阵列。 例如。
np.array([[False, True], [True, True]])
a1 = np.array([[[1, 2, 1], [2, 3, 2]], [[3, 4, 3], [4, 3, 4]]])
b1 = np.array([1, 1, 1])
之类的操作必须返回a1 > b1
。
怎么做?
答案 0 :(得分:4)
找到解决方案:另外使用numpy.all
函数。
我的例子的用法:
np.array([[False, True], [True, True]])
结果:
a=np.array([[1, 3], [3, 4]])
b=np.array([2, 2])
numpy.all(a > b, axis=1)
和
array([False, True], dtype=bool)
结果:
a1 = np.array([[[1, 2, 1], [2, 3, 2]], [[3, 4, 3], [4, 3, 4]]])
b1 = np.array([1, 1, 1])
numpy.all(a1 > b1, axis=2)
array([[False, True],
[ True, True]], dtype=bool)
也允许传递多个轴(作为整数元组),因此它可以用于任何维度。
numpy允许使用numpy数组的ndarray.all
方法。然后,示例可以分别重写为numpy.all
和(a>b).all(axis=1)
。