b的操作得到数组np.array([False, True])。 -6ren">
gpt4 book ai didi

python - "Less/greater than"N维和(N-k)维numpy数组的比较

转载 作者:行者123 更新时间:2023-11-28 21:48:48 25 4
gpt4 key购买 nike

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

目标:通过类似a>b的操作得到数组np.array([False, True])。 IE。比较行(True 如果每对元素满足 > operator else False )而不是逐元素比较(即我 想要获取 np.array([[False, True], [True, True]])).

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

怎么做?

最佳答案

找到解决方案:另外使用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 还允许传递多个轴(作为整数元组),因此它可以用于任何维度。

numpy 还允许使用 ndarray.all numpy数组的方法。那么例子可以分别重写为(a>b).all(axis=1)(a1>b1).all(axis=2)

关于python - "Less/greater than"N维和(N-k)维numpy数组的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34618456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com