矩阵乘法与按位运算符

Matrix multiplication with bitwise operators

我想创建一个位掩码向量来屏蔽哪些值大于给定值。类似于 [1, 2, 3, 4, 5] * [>3, >3, >3, >3, >3] = [0, 0, 0, 1, 1]。我希望能够 运行 在 theano 上执行此操作以获得更快的矩阵运算计算时间。是否有可以使用按位运算符或位来创建此位掩码的线性代数程序?我目前正在遍历这个矩阵,我想使用需要更多矩阵乘法的 theano 将计算转移到 GPU。感谢您的帮助。

你可以通过矩阵之间的逻辑运算得到你想要的。 例如

print((np.r_[1, 2, 3, 4, 5] > 3))

会给

[False False False  True  True]

如果你想要整数,你可以这样做

print((np.r_[1, 2, 3, 4, 5] > 3).astype(int) )

并得到

[0 0 0 1 1]