2

如何在 numpy 中定义使用模 2 运算的矩阵?

例如:

0 0       1 0       1 0
1 1   +   0 1   =   1 0

谢谢!

4

2 回答 2

8

此操作称为“异或”。

>>> import numpy
>>> x = numpy.array([[0,0],[1,1]])
>>> y = numpy.array([[1,0],[0,1]])
>>> x ^ y
array([[1, 0],
       [1, 0]])

顺便说一句,(元素)乘法模2可以用“and”完成。

>>> x & y
array([[0, 0],
       [0, 1]])
于 2010-09-15T18:28:33.243 回答
2

您可以继承numpy.ndarray并覆盖该__add__方法,但我认为明确表示会简单得多。例如:

import numpy as np
x = np.array([[0,0],[1,1]])
y = np.array([[1,0],[0,1]])

print (x + y) % 2

产生:

array([[1, 0],
       [1, 0]])
于 2010-09-15T18:06:35.903 回答