2015-01-07 5 views
5

से numpy के intc मान को कैसे बदलें I numpy's intc डेटाटाइप के साथ समस्या का सामना कर रहा है। मैं अपनी मशीन पर लिनक्स 64 बिट चला रहा हूं। मुझे 32 बिट सीमा से परे इंडेक्स के साथ एक scipy.sparse.csr_matrix को तुरंत चालू करने की आवश्यकता है।32 से 64 बिट

मुझे लगता है कि जैसे एक सीएसआर मैट्रिक्स instantiated है: उदाहरण के लिए

matrix=csr_matrix((2, 4132009369),dtype=int8) 

यह मैं कोई समस्या नहीं gaves। फिर, कोड मैं करता हूँ में कहीं, मान लें:

matrix[0, 2401803431]=1 

और मैं ValueError: column index values must be >= 0 मिला है। मैंने कोड डीबग किया और मैंने पाया कि सीएसआर_मैट्रिक्स के एससीआई के कार्यान्वयन में कहीं भी कॉलम वैल्यू को एक numpy के intc डेटाटाइप में परिवर्तित कर दिया गया है।

>>> import numpy as np 
>>> info=np.iinfo(np.intc) 
>>> info.max 
2147483647 

कि मूल्य 2^31-1 है: यह सुनिश्चित करने के लिए एक INTC समस्या मैं निम्नलिखित कोड के साथ की जाँच है। तो, क्या आपके पास कोई सुझाव है कि 32 बिट intc से 64 बिट intc तक जाने का कोई तरीका है? इस पेज में http://docs.scipy.org/doc/numpy/user/basics.types.html यह कहना है कि

intc Identical to C int (normally int32 or int64) 

आप अपने समय के लिए बहुत बहुत धन्यवाद!

उत्तर

2

मैं नवीनतम संस्करण के लिए SciPy लाइब्रेरी को उन्नयन द्वारा हल किया (पहले मैं 1.3 था, अब 1.4)

+1

मुझे लगता है कि आप आप 0.13 से 0.14 करने के लिए उन्नत मतलब है। –

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