Numpy 一次将数组与多个标量进行比较

2024-01-07

假设我有一个数组

a = np.array([1,2,3])

我想将它与一些标量进行比较;这工作得很好,就像

a == 2 # [False, True, False]

有没有办法可以同时使用多个标量进行这样的比较?比较两个数组时的默认行为是进行元素比较,但我希望一个数组的每个元素与整个另一个数组进行元素比较,如下所示:

scalars = np.array([1, 2])
some_function(a, scalars)
[[True, False, False],
 [False, True, False]]

显然我可以做到这一点,例如,使用 for 循环然后堆叠,但是有没有任何矢量化方法可以实现相同的结果?


外积,只不过它是等式而不是乘积 https://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.outer.html:

numpy.equal.outer(scalars, a)

或调整尺寸并执行广播的 https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html比较:

scalars[:, None] == a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Numpy 一次将数组与多个标量进行比较 的相关文章

随机推荐