Ich habe eine binäre Matrix der Größe . Ich wollte die ganzen 1's
in der Matrix ändern zu einem bestimmten Index -1
Ersetzen Sie alle 1 bei einem bestimmten Index - numpy
konnte ich so etwas wie diese
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)
bekommen, wenn ich diese drucken, bekomme ich so etwas wie diese
[[-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]]
Aber das scheint falsch zu sein, da der Index am Ende der Matrix ist, was ich wollte, war
[[ 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]]
Ich weiß, dass nonzero()
nicht benötigt wird, da ich bereits den Inhalt zu 1
vergleiche, aber das ist das Beste, was ich habe.
Was mache ich falsch? Gibt es eine Möglichkeit, die richtige Antwort zu bekommen?
Sie haben Recht 'mat [index ,:] = -mat [index,:]' das hat mich nicht getroffen. Danke für die Antwort – Akshay
@akshay Ich bin froh, ich könnte helfen :) –