2

演算モジュロ 2 を使用する行列を numpy で定義するにはどうすればよいですか?

例えば:

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

ありがとう!

4

2 に答える 2

8

この操作は「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]])
于 2010-09-15T18:28:33.243 に答える
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]])
于 2010-09-15T18:06:35.903 に答える