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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage