Ich habe ein großes scipy.sparse.csc_matrix
und möchte es normalisieren. Das subtrahiert den Spaltenmittelwert von jedem Element und dividiert durch die Spaltenstandardabweichung (std) i.
scipy.sparse.csc_matrix
hat .mean()
aber gibt es eine effiziente Möglichkeit, die Varianz oder Std zu berechnen?
Sie können die Abweichung selbst berechnen, indem Sie den Mittelwert mit der folgenden Formel verwenden:
%Vor% E[X]
steht für den Mittelwert. Um also E[X^2]
zu berechnen, müssten Sie das csc_matrix
quadrieren und dann die Funktion mean
verwenden. Um (E[X])^2
zu erhalten, müssen Sie einfach das Ergebnis der Funktion mean
quadrieren, die Sie mit der normalen Eingabe erhalten haben.
Der effiziente Weg besteht eigentlich darin, die gesamte Matrix zu verdichten und dann auf die übliche Weise mit
zu standardisieren %Vor%Wie @Sebastian in seinen Kommentaren angemerkt hat, zerstört die Standardisierung die Sparsity-Struktur (führt viele Nicht-Null-Elemente ein) in den Subtraktionsschritt, so dass es keinen Zweck hat, die Matrix in einem spärlichen Format zu halten.