Numpy 模数运算
我该如何在numpy中定义一个使用模2运算的矩阵呢?
举个例子:
0 0 1 0 1 0
1 1 + 0 1 = 1 0
谢谢!
2 个回答
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]])
10
这个操作叫做“异或”(xor)。
>>> 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]])