【问题标题】:numpy Matlab equivalent of `bitxor` between to vectors of different sizes WITHOUT loopnumpy Matlab 等效于 `bitxor` 到不同大小的向量之间没有循环
【发布时间】:2017-06-29 18:54:03
【问题描述】:

这是matlab代码:

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

它返回:

ans =

     4     7     6     1
     2     1     0     7

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

【问题讨论】:

    标签: python matlab numpy xor


    【解决方案1】:

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

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

    【讨论】:

    • 惊人的反应,我喜欢它:)!
    • 您是否有任何文档可以简单地解释第二种表示法?
    • 已更新。 python 中的^np.bitwise_xor 相同。
    • 我必须准确地说我自 1995 年以来就没有做过线性代数和 pb。是我对 numpy 不熟悉。我添加了阅读一两个文档,但我对广播一无所知:(
    • 似乎A^B.reshape(2,1) 有效,但为什么A^B.T 无效?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2012-10-15
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多