numpy Matlab 等效于不同大小的向量之间的 bitxor 没有循环

numpy Matlab equivalent of `bitxor` between to vectors of different sizes WITHOUT loop

这是 matlab 代码:

A=[1,2,3,4];
B=[5,3];
bitxor(A,B')

它 returns :

ans =

     4     7     6     1
     2     1     0     7

如何在没有循环的情况下使用 numpy 做到这一点?

你想要np.bitwise_xor.outer(B, A)

或者,A ^ B[:,np.newaxis] 有效,这对于一维数组是相同的。 B[:,np.newaxis] 生成一个形状为 (2, 1) 的数组,该数组针对形状为 (4,)A 进行广播,以根据需要生成形状为 (2, 4) 的输出。