假设我有一个数组
a = np.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)
我想把它与一些标量进行比较; 这很好用
a == 2 # [False, True, False]
Run Code Online (Sandbox Code Playgroud)
有没有办法可以做这样的比较,但同时有多个标量?比较两个数组时的默认行为是进行元素比较,但我希望将一个数组的每个元素与其他整个数组进行元素比较,如下所示:
scalars = np.array([1, 2])
some_function(a, scalars)
[[True, False, False],
[False, True, False]]
Run Code Online (Sandbox Code Playgroud)
显然我可以这样做,例如,使用for循环然后堆叠,但是有没有任何矢量化的方法来实现相同的结果?
numpy.equal.outer(scalars, a)
Run Code Online (Sandbox Code Playgroud)
或调整尺寸并进行广播比较:
scalars[:, None] == a
Run Code Online (Sandbox Code Playgroud)