2012-06-23 19 views
7

मैं scipy के साथ शुरू करने की कोशिश कर रहा हूं, लेकिन पैकेज मुझे कुछ समस्याएं दे रहा है। ट्यूटोरियल scipy.io पर भारी leans, लेकिन जब मैं scypi आयात और scipy.io इस्तेमाल करने की कोशिश, मैं त्रुटियों मिल:मैं scipy.io का उपयोग क्यों नहीं कर सकता?

In [1]: import scipy 

In [2]: help(scipy.io) 
--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
/home/chris/dev/scipy/<ipython-input-2-ef060398b31c> in <module>() 
----> 1 help(scipy.io) 

AttributeError: 'module' object has no attribute 'io' 

मैं सिस्टम अद्यतन चलाने है और मैं scipy की स्थापना रद्द तो इसे फिर से स्थापित किया।

In [1]: import scipy.io 

लेकिन तब जब मैं इसे इस्तेमाल करने की कोशिश, मैं जितनी जल्दी कोई त्रुटि मिलती है के रूप में मैं एक विधि का उपयोग करें:

In [2]: arr = scipy.array([[1.0,2.0],[3.0,4.0],[5.0,6.0]]) 
In [3]: outFile = file('tmpdata1.txt', 'w') 
In [4]: scipy.io.write_array(outFile, arr) 
--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
/home/chris/dev/scipy/<ipython-input-4-46d22e4ff485> in <module>() 
----> 1 scipy.io.write_array(outFile, arr) 

AttributeError: 'module' object has no attribute 'write_array' 

दिलचस्प बात यह मैं मॉड्यूल इस तरह से आयात कर सकते हैं मुझे यकीन है कि मुझे कुछ शर्मनाक रूप से बुनियादी याद आ रहा है, लेकिन मुझे Google पर या स्टैक ओवरफ्लो अभिलेखागार में इस समस्या का उत्तर नहीं मिला है।

+0

'write_array'' scipy.io' में नहीं है, यह ['scipy.io.array_import'] में है (http://www.scipy.org/doc/api_docs /SciPy.io.array_import.html#write_array)। क्या 'scipy.io.array_import.write_array' है ('scipy.io.array_import' आयात करें) के बाद काम? आप किस ट्यूटोरियल का पालन कर रहे हैं? –

उत्तर

15

यहां दो चीज़ें। सबसे पहले, आप import package करके पैकेज में सामान्य रूप से किसी मॉड्यूल तक नहीं पहुंच सकते हैं और फिर package.module तक पहुंचने का प्रयास कर सकते हैं। आप अक्सर आप क्या किया करने के लिए, यदि आप package.module हर समय टाइप करने के लिए नहीं करना चाहते हैं, तो आप क्या कर सकते हैं from package import module है import package.module, या (। तो अगर आप भी ऐसा कर सकते हैं from scipy import io

दूसरा, scipy.io मॉड्यूल प्रदान नहीं करता है एक write_array फ़ंक्शन। ऐसा लगता है कि यह संभवतः उपयोग किया जाता था, लेकिन वे इससे छुटकारा पा चुके थे। आप पुराने ट्यूटोरियल देख रहे हैं। (आप किस ट्यूटोरियल का उपयोग कर रहे हैं?) चारों ओर घूमते हुए, ऐसा लगता है कि वे इसके बजाय numpy के savetxt फ़ंक्शन का उपयोग करने का सुझाव देते हैं, तो आप उसमें देखना चाहेंगे।

+0

हाँ, ऐसा लगता है कि मैं जिस ट्यूटोरियल का उपयोग कर रहा था (http://cutter.rexx.com/~dkuhlman/scipy_course_01.html) बहुत पुराना था। मुझे यह भी याद नहीं है कि मैं अब इस पर कैसे आया, लेकिन मुझे उस साइट पर एक पाया गया (http://docs.scipy.org/doc/scipy/reference/tutorial/) जिसे मैं अब से उपयोग करूँगा। मेरे आयात भ्रम को साफ़ करने के लिए भी धन्यवाद! –

+0

प्रलेखन उस समय बहुत पुराना नहीं था। 'write_array' को' scipy.io' से 'scipy.io.array_import' (बहुत) से आपकी मूल पोस्ट से लगभग डेढ़ साल पहले स्थानांतरित कर दिया गया था, फिर जल्द ही इसे 'savetxt' और दोस्तों के पक्ष में हटा दिया गया। –

+0

इसके अलावा, अब आप 'टेंफाइल' विधि का उपयोग कर सकते हैं जो सीधे 'ndarray' पर है। यह भी आसान है। –

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