2012-06-23 124 views
7

我一直在試圖開始與scipy,但包給我一些問題。本教程很大程度上依靠scipy.io,但是當我輸入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'(在'import scipy.io.array_import'之後)工作?你在跟隨什麼教程? –

回答

15

這裏有兩件事。首先,通過執行import package然後嘗試訪問package.module,通常無法訪問程序包中的模塊。你經常需要做的你做了什麼,import package.module,或者(如果你不想鍵入package.module所有的時間,你可以做from package import module。所以,你也可以做from scipy import io

二,scipy.io模塊不提供一個write_array的函數,看起來可能已經習慣了,但是他們已經擺脫了它,你可能正在看一個過時的教程(你正在使用什麼教程?)在Google上搜索,似乎他們建議使用numpy的savetxt函數,所以你可能想研究一下。

+0

是的,似乎我使用的教程(http://cutter.rexx.com/~dkuhlman/scipy_course_01.html)非常過時。我甚至不記得現在我是如何遇到它的,但是我在scipy網站上找到了一個(http://docs.scipy.org/doc/scipy/reference/tutorial/),我將從此使用它。 感謝您清理我的導入混淆! –

+0

當時文檔並不是非常過時。 'write_array'從原始帖子前的大約一年半時間從scipy.io移到了scipy.io.array_import(很快),然後在完全刪除它後贊成'savetxt'和朋友。 –

+0

此外,您現在可以直接使用'ndarray'上的'tofile'方法。這更容易。 –