सामान्य करने के लिए कुशल तरीका मैं एक ऐसा फ़ंक्शन लिखना चाहता हूं जो एक बड़े स्पैर मैट्रिक्स की पंक्तियों को सामान्य करता है (जैसे कि वे एक के बराबर हैं)।एक Scipy Sparse Matrix
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
वहाँ किसी भी यथोचित सरल समाधान कर रहे हैं:
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)
हालांकि इस निम्न अपवाद देता है? मैंने this पर देखा है, लेकिन अभी भी यह स्पष्ट नहीं है कि वास्तव में विभाजन कैसे करें।
यह मूल रूप से एक डुप्लिकेट है: http: //stackoverflow.c ओम/प्रश्न/12237954/गुणा-तत्व-इन-ए-स्पैस-एरे-साथ-पंक्ति-इन-मैट्रिक्स के साथ, इससे कोई फर्क नहीं पड़ता कि यह पंक्ति के आधार पर गुणात्मक रूप से गुणा या विभाजन है। बेशक अगर किसी के पास एक बेहतर जवाब है, तो महान :) – seberg
ग्रेट - धन्यवाद! – sterne
मैं असहमत हूं, यह एक अलग समस्या है। जिस डुप्लिकेट को आपने इंगित किया है वह तत्व-वार गुणा करता है, जबकि यह प्रश्न प्रत्येक पंक्ति को एक अलग मान से विभाजित करना चाहता है (सभी मानों के समान शून्य तत्वों के बजाय)। नीचे हारून मैकडायड का समाधान कुशलतापूर्वक काम करना चाहिए (और डेटा की प्रतिलिपि की आवश्यकता नहीं है)। – conradlee