如何在 numpy 中定义使用模 2 运算的矩阵?
例如:
0 0 1 0 1 0
1 1 + 0 1 = 1 0
谢谢!
此操作称为“异或”。
>>> 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]])
您可以继承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]])