给定两个数组a=np.array([[1, 3], [3, 4]])和b=np.array([2, 2])。
目标:通过像np.array([False, True])这样的操作获取数组a>b。也就是说,比较行(如果每对元素都满足>运算符else False ),而不是按元素进行比较(例如,i不想要get np.array([[False, True], [True, True]]))。
类似于三维和(可选)N维阵列.例如。
a1 = np.array([[[1, 2, 1], [2, 3, 2]], [[3, 4, 3], [4, 3, 4]]])
b1 = np.array([1, 1, 1])像a1 > b1这样的操作必须返回np.array([[False, True], [True, True]])。
该怎么做呢?
发布于 2016-01-05 18:11:10
解决方案:另外使用numpy.all函数。
我的示例的用法:
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.all还允许传递多个轴(作为it的元组),因此它可以用于任何维度。
此外,numpy允许使用numpy数组的ndarray.all方法。然后将示例分别重写为(a>b).all(axis=1)和(a1>b1).all(axis=2)。
https://stackoverflow.com/questions/34618456
复制相似问题