Ich habe eine 3-Spalten-Array. Die erste Spalte des Arrays hat Werte zwischen 1 und 10. Ich muss alle Zeilen extrahieren, in denen die erste Spalte 1 ist und die dritte Spalte dieses Array-Segments normalisieren. Dann wiederholen Sie das gleiche für alle Zeilen, für die die erste Spalte gleich 2 usw.Normalisieren Schichten eines NDarray
Wenn ich diesen Code ausführen, läßt es das Array unverändert:
for u in np.unique(x[:,0]):
mask= x[:, 0] == u
x[mask][:,2]=x[mask][:,2]/np.sum((x[mask][:,2]))
Wenn ich ausführen, um dieses andere Stück Code , Ich sehe, dass r (ich legte einen Druck r in der Schleife) tatsächlich genau so arbeiten, wie ich will. Der einzige Punkt ist, dass das ursprüngliche Array x unverändert bleibt.
for u in np.unique(x[:,0]):
r = x[x[:, 0] == u]
r[:,2]=r[:,2]/np.sum((x[x[:,0]==u][:,2]))
Warum ist das? Was mache ich falsch???
Danke Kumpel! – user3623123