Ich habe eine dünne Matrix. Ich muss diese Matrix Zeile für Zeile sortieren und eine andere [spärliche] Matrix erstellen. Code kann es besser erklären:
%Vor% Ich habe diese m
Matrix. Ich möchte eine neue Matrix mit sortierter Version von m erstellen. Die neue Matrix
enthält 0. Zeile wie folgt.
So kann ich herausfinden, welche Spalte größer ist usw.:
%Vor%Natürlich sollte jede Zeile wie oben unabhängig sortiert werden.
Ich habe eine Lösung für dieses Problem, aber es ist nicht elegant.
Wenn Sie die nullwertigen Elemente der Matrix ignorieren möchten, sollte der folgende Code funktionieren. Es ist auch viel schneller als Implementierungen, die die getrow-Methode verwenden, die ziemlich langsam ist.
%Vor%Zum Beispiel:
%Vor%Abhängig von Ihren Bedürfnissen möchten Sie vielleicht die Sortierschlüssel im Lambda verändern oder die Ausgabe weiterverarbeiten. Wenn Sie alles in einer Reihe indizierten Wörterbuch möchten, könnten Sie tun:
%Vor%Meine schlechte Lösung ist so:
%Vor%Es kann einige einfache Fehler oben geben, weil ich es noch nicht überprüft habe. Aber die Idee ist intuitiv, denke ich. Gibt es eine gute Lösung?
Diese neue Matrix-Erstellung kann nutzlos sein, denn wenn Sie getrow
method aufrufen, wird der Auftrag erneut unterbrochen.
Nur coo_matrix.col
behält die Reihenfolge bei.
Dies ist keine exakte Lösung, aber es kann hilfreich sein:
%Vor% %Vor%Tags und Links python sparse-matrix sorting scipy