Python &引用;小于/大于;N维和(N-k)维numpy阵列的比较
给定两个数组Python &引用;小于/大于;N维和(N-k)维numpy阵列的比较,python,arrays,python-3.x,numpy,compare,Python,Arrays,Python 3.x,Numpy,Compare,给定两个数组a=np.array([[1,3],[3,4]])和b=np.array([2,2]) 目标:通过像a>b这样的操作获取数组np.array([False,True])。即,比较行(True如果每对元素满足运算符elseFalse),而不是元素级比较(即I不想要获取np.array([[False,True],[True,True]])) 对于三维和(可选)N维阵列也类似。 例如 像a1>b1这样的操作必须返回np.array([[False,True],[True,True]])
a=np.array([[1,3],[3,4]])
和b=np.array([2,2])
目标:通过像a>b
这样的操作获取数组np.array([False,True])
。即,比较行(True
如果每对元素满足
运算符elseFalse
),而不是元素级比较(即I不想要获取np.array([[False,True],[True,True]])
)
对于三维和(可选)N维阵列也类似。
例如
像a1>b1
这样的操作必须返回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)
array([[False, True],
[ True, True]], dtype=bool)
及
结果:
array([False, True], dtype=bool)
array([[False, True],
[ True, True]], dtype=bool)
numpy.all
还允许传递多个轴(作为整数元组),因此它可以用于任何维度
numpy还允许使用numpy数组的方法。然后示例可以分别重写为
(a>b).all(axis=1)
和(a1>b1).all(axis=2)
。这些都是整数数组吗?我看不到基于元素类型的比较限制。因此,所有可比较的(按numpy)类型都是允许的。(A>B)。all(axis=-1)
将是一种通用的方式,只要缩减沿最后一个轴进行。