2
私はサイズが10-by-10
のバイナリ行列を持っています。私はこれを印刷するとき、私はこの与えられたインデックスで1をすべて置き換えます - numpy
[[-1 0 -1 1 0 -1 -1 1 -1 0]
[ 1 0 1 -1 -1 1 -1 -1 -1 1]
[ 0 -1 1 0 -1 -1 -1 1 -1 0]
[-1 -1 -1 -1 -1 1 -1 1 -1 1]
[ 1 1 1 1 0 0 0 0 0 1]
[ 1 1 1 1 0 0 0 0 1 0]
[ 1 0 1 0 0 1 1 0 1 0]
[ 0 0 0 1 1 0 1 1 1 0]
[ 0 1 0 0 1 1 1 0 1 0]
[ 1 1 1 1 1 0 1 0 1 0]]
のようなものを取得し、この
import numpy as np
mat = np.random.randint(2, size=(10, 10))
index = [6,7,8,9]
mat[(mat[index,:] == 1).nonzero()] = -1
print(mat)
のようなものを得ることができた-1
に指定されたインデックスの行列内のすべての1's
を変更したいです
インデックスがマトリックスの最後にあるので、これは間違っているようです。
[[ 1 0 1 1 0 1 1 1 1 0]
[ 1 0 1 1 1 1 1 1 1 1]
[ 0 1 1 0 1 1 1 1 1 0]
[ 1 1 1 1 1 1 1 1 1 1]
[ 1 1 1 1 0 0 0 0 0 1]
[ 1 1 1 1 0 0 0 0 1 0]
[-1 0 -1 0 0 -1 -1 0 -1 0]
[ 0 0 0 -1 -1 0 -1 -1 -1 0]
[ 0 -1 0 0 -1 -1 -1 0 -1 0]
[-1 -1 -1 -1 -1 0 -1 0 -1 0]]
私はすでに内容を1
と比較しているので、nonzero()
は必要ないと知っていますが、それは私が得た最高のものです。
私は間違っていますか?正しい答えを得る方法はありますか?
あなたが正しいです:
あなたが唯一の0と1のバイナリ行列を持っている場合、あなただけの
'mat [index ,:] = -mat [index、:]'それは私に打たれなかった。回答ありがとう – Akshay0
いるので、与えられた行のすべての要素の符号を反転することもできますが、この変換に対して不変であるが、@akshay私は助けることができてうれしいです:) –