Ich muss die Zeilen einer Matrix summieren, negieren, und setzen sie auf die Diagonale entweder der ursprünglichen Matrix oder einer Matrix, wo die Off-Diagonale Terme sind Null. Was funktioniert istPython negative Summe von Zeilen auf Matrix-Diagonale effizient
Mat2 = numpy.diag(numpy.negative(numpy.squeeze(numpy.asarray(numpy.sum(Mat1,axis=1))))
Gibt es eine sauberere/schnellere Möglichkeit, dies zu tun? Ich versuche, etwas Code zu optimieren.
Benötigen Sie wirklich das 'numpy.asarray'? - Es wird nicht viel für Ihre Laufzeit tun, aber der Code könnte ein wenig handlicher ohne es aussehen. Auch "numpy.negative (...)" kann prägnanter als "-..." geschrieben werden. Wiederum keine Laufzeitvorteile, aber etwas kürzerer Code. – mgilson
Ich hatte ein Problem, wo die Summe etwas mit einem zusätzlichen Paar Klammern ausgeben und dann numpy.diag() eine Matrix ausgeben, die ein einzelnes Element enthält. Ich bin nicht allzu besorgt um die Beschleunigung (für dieses spezielle Stück), aber was ich gerade jetzt habe, ist wirklich hässlich auf der Suche nach einem scheinbar einfachen Problem. – chia