2013-03-29 4 views
6

मेरे पास scipy.sparse के माध्यम से बनाया गया एक 988x1 वेक्टर (csr_matrix में एक कॉलम) है। क्या स्पैस मैट्रिक्स को घने में परिवर्तित किए बिना इसका मतलब और मानक विचलन प्राप्त करने का कोई तरीका है?आप csr_matrix में कॉलम का माध्य और std कैसे प्राप्त करते हैं?

numpy.mean केवल घने वैक्टर के लिए काम करता है।

+0

[प्रविष्टियों समाप्त करें] (http://docs.scipy.org/doc /scipy/reference/generated/scipy.sparse.csr_matrix.sum.html#scipy.sparse.csr_matrix.sum) और माध्य की गणना करने के लिए m * n द्वारा विभाजित करें। मान लीजिए कि मैट्रिक्स के लिए इसका मतलब क्या है। मैं पहले कभी मैट्रिक्स मतलब नहीं आया है। –

+0

हाय डेविड, मुझे अपना प्रश्न संपादित करना चाहिए था, मैं एक वेक्टर के माध्य और std को खोजने के लिए देख रहा हूं, लेकिन इसके स्पैस फॉर्म में, क्या आप उन दो मानों को प्राप्त करते हैं? – Curious

+0

तो, टिप्पणी में मेरी परिभाषा सटीक है? यह 988 मूल्यों का योग है, जो 988 से विभाजित है? और यदि आप कॉलम के साथ काम करते हैं तो आप सीएसआर का उपयोग क्यों कर रहे हैं? –

उत्तर

7

चूंकि आप कॉलम स्लाइसिंग कर रहे हैं, इसलिए सीएसआर के बजाय सीएससी का उपयोग करके मैट्रिक्स को स्टोर करना बेहतर हो सकता है। लेकिन यह इस बात पर निर्भर करेगा कि आप मैट्रिक्स के साथ और क्या कर रहे हैं।

सीएससी मैट्रिक्स में कॉलम के माध्य की गणना करने के लिए आप मैट्रिक्स के mean() फ़ंक्शन का उपयोग कर सकते हैं।

मानक विचलन की गणना करने के लिए कुशलतापूर्वक थोड़ा और प्रयास शामिल करने जा रहा है।

col = A.getcol(colindex) 

फिर तो जैसे विचरण गणना: सबसे पहले, आप इस तरह अपने विरल स्तंभ मिल लगता

N = col.shape[0] 
sqr = col.copy() # take a copy of the col 
sqr.data **= 2 # square the data, i.e. just the non-zero data 
variance = sqr.sum()/N - col.mean()**2 
+5

+1। एक वैकल्पिक दृष्टिकोण (मेरे स्वयं के प्रोजेक्ट के लिए लापरवाही प्लग) ['विज्ञान-सीखने से मानक स्केकर' का उपयोग करना है (http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html), जिसमें सीएसआर और सीएससी मैट्रिस के लिए एक अनुकूलित माध्यम + भिन्नता गणना है। –

+1

@ लार्समैन मुझे मिलता है "" स्पैस मैट्रिस को केंद्र नहीं दे सकता: पास 'with_mean = गलत' '' csr_matrix के साथ। – jul

संबंधित मुद्दे