Numpy 模数运算

4 投票
2 回答
5990 浏览
提问于 2025-04-16 04:11

我该如何在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]])

撰写回答