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)
的输出。
这是 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)
的输出。