2010-09-15 70 views

回答

7

这种操作称为 “异”。

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

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

>>> x & y 
array([[0, 0], 
     [0, 1]]) 
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]]) 
+0

我还需要两个矩阵相乘时的模块加法 – yassin 2010-09-15 18:26:38

+0

@Yassin - 然后只要做'(x * y)%2'。肯尼的解决方案是要走的路,尽管...我倾向于忘记异或存在!这是一个更干净的方式来做你想做的事。 – 2010-09-15 18:32:45