Effiziente Methode zur Normalisierung einer Scipy Sparse Matrix
Ich möchte eine Funktion schreiben, die die Zeilen einer großen, dünn besetzten Matrix normalisiert (so dass sie sich zu einer summieren).
from pylab import *
import scipy.sparse as sp
def normalize(W):
z = W.sum(0)
z[z < 1e-6] = 1e-6
return W / z[None,:]
w = (rand(10,10)<0.1)*rand(10,10)
w = sp.csr_matrix(w)
w = normalize(w)
Dies gibt jedoch die folgende Ausnahme:
File "/usr/lib/python2.6/dist-packages/scipy/sparse/base.py", line 325, in __div__
return self.__truediv__(other)
File "/usr/lib/python2.6/dist-packages/scipy/sparse/compressed.py", line 230, in __truediv__
raise NotImplementedError
Gibt es einigermaßen einfache Lösungen? Ich habe angeschautdiese, bin aber immer noch unklar, wie man die Aufteilung tatsächlich macht.