2011-03-25 9 views
7

उदाहरण के लिए numpy.exp या scipy.sparse.lil_matrix या अन्य स्पैर मैट्रिक्स प्रारूप में सभी तत्वों के लिए समान बिंदुवार ऑपरेटरों के लिए आवेदन करना संभव है?scipy.sparse matrices पर प्वाइंट वार ऑपरेशंस

import numpy 
from scipy.sparse import lil_matrix 

x = numpy.ones((10,10)) 
y = numpy.exp(x) 

x = lil_matrix(numpy.ones((10,10))) 
# y = ???? 

numpy.exp(x) या scipy.exp(x) एक AttributeError पैदावार, और numpy.exp(x.data) ही अर्जित करता है।

धन्यवाद!

+1

मुझे लगता है कि वर्तमान में इस में से किसी में काम करने के लिए नहीं किया जाता है स्पैर मैट्रिक्स प्रारूप। निजी तौर पर, मुझे लगता है कि नियमित रूप से धीमा करने के बजाय अलग-अलग स्पैस फ़ंक्शन किए जाने चाहिए। ओलिवियर द्वारा दिखाए गए वर्कअराउंड को मूल रूप से किसी भी अन्य स्पैर प्रारूप में परिवर्तित करना और 'डेटा' विशेषता पर काम करना है। लिल मैट्रिस का डेटा विशेषता इस के लिए काम नहीं करती है क्योंकि यह प्रकार ऑब्जेक्ट की एक सरणी है। –

उत्तर

6

मैं पूरी जानकारी पता नहीं है, लेकिन एक और प्रकार काम करता है में परिवर्तित करने, गैर शून्य तत्वों की सरणी का उपयोग कर कम से कम जब:

xcsc = x.tocsc() 
numpy.exp(xcsc.data) # works 
+2

हां। जैसा कि यह दस्तावेज़ों में कहता है http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.lil_matrix.html lil प्रारूप मुख्य रूप से स्पैस एरे बनाने के लिए एक विधि के रूप में उपयोग किया जाना है जो संचालन नहीं कर रहा है । एक बार सरणी बनने के बाद दस्तावेज़ इस रूपांतरण को करने की सलाह देते हैं। – Paul

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