「バイナリ」とは「ブール」を意味しますか?(そして、なぜ世界であなたが使用している構文を使用しているのですか??)
import numpy as np
g = np.array([[1, 0, 0, 0, 1, 1],
[0, 1, 0, 1, 0, 1],
[0, 0, 1, 1, 1, 0]], dtype=bool)
h = np.array([[0, 1, 1, 1, 0, 0],
[1, 0, 1, 0, 1, 0],
[1, 1, 0, 0, 0, 1]], dtype=bool)
違いについては、を検討して1 + 1
ください。バイナリでは、2
(0b10
)を取得します。ブール表現では、を取得し1
ます。
したがって、なりたい場合は[0, 1] + [0, 1]
、[1, 0]
バイナリが必要です。にしたい場合は[0, 1]
、ブール値にします。
同様に、になりたい場合は[1, 1] + [1, 0]
、[1, 0, 1]
バイナリにします。にしたい場合は[1, 1]
、ブール値にします。
あなたが言及するいくつかの操作の例として(ブール値を使用して):
print 'g * h ...'
print g * h
print 'g * h viewed as integers...'
print (g * h).view(np.int8) # or x.astype(int), but the latter makes a copy
a = np.array([1, 1, 0], dtype=bool)
print 'Matrix multiplication of [1, 1, 0] with g...'
print a.dot(g) # Or we could do g.T.dot(a)
これにより、次のようになります。
g * h ...
[[False False False False False False]
[False False False False False False]
[False False False False False False]]
g * h viewed as integers...
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
Matrix multiplication of [1, 1, 0] with g...
[ True True False True True True]