我一直在努力开始使用scipy,但是这个包给了我一些问题。该教程严重依赖scipy.io,但是当我导入scypi并尝试使用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或stackoverflow档案中找到这个问题的答案。
答案 0 :(得分:21)
这里有两件事。首先,您不能通过执行import package
然后尝试访问package.module
来访问包中的模块。你经常要做你做过的事,import package.module
,或者(如果你不想一直输入package.module
,你可以做from package import module
。所以你也可以做{{} 1}}。
其次,from scipy import io
模块不提供scipy.io
功能。它看起来可能已经习惯了,但他们摆脱了它。您可能正在查看过时的教程。 (你正在使用什么教程?)谷歌搜索,似乎他们建议使用numpy的write_array
函数,所以你可能想要研究它。