当前位置:  开发笔记 > 编程语言 > 正文

N维和(Nk)维numpy数组的“小于/大于”比较

如何解决《N维和(Nk)维numpy数组的“小于/大于”比较》经验,为你挑选了1个好方法。

给定两个数组a=np.array([[1, 3], [3, 4]])b=np.array([2, 2])

目标:np.array([False, True])通过类似的操作获取数组a>b。即比较行(True 如果每对要素的满足>运营商其他False),而不是按元素比较(即我希望GET np.array([[False, True], [True, True]]))。

对于3-D和(可选)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]])

怎么做?



1> kupgov..:

找到解决方案:使用附加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 还允许传递多个轴(作为int元组),因此它可用于任何尺寸。

另外numpy允许使用ndarray.allnumpy数组的方法。然后可以将示例分别重写为(a>b).all(axis=1)(a1>b1).all(axis=2)


(A> B).all(axis = -1)是将其放入任何Ndarray的通用方法,只要缩减量沿最后一个轴即可。
推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有