Numpy模块化算术

时间:2010-09-15 17:02:01

标签: python numpy math modular

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

例如:

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

谢谢!

2 个答案:

答案 0 :(得分:7)

此操作称为“xor”。

>>> import numpy
>>> x = numpy.array([[0,0],[1,1]])
>>> y = numpy.array([[1,0],[0,1]])
>>> x ^ y
array([[1, 0],
       [1, 0]])
BTW,(逐元素)乘法模2可以用“和”完成。

>>> x & y
array([[0, 0],
       [0, 1]])

答案 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]])