为什么我不能使用scipy.io?

Chr*_*son 16 python import scipy

我一直在努力开始使用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'
Run Code Online (Sandbox Code Playgroud)

我已经运行了系统更新,我卸载了scipy然后再次安装它.

有趣的是,我可以这样导入模块:

In [1]: import scipy.io
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用它时,一旦我使用方法,我就会收到错误:

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'
Run Code Online (Sandbox Code Playgroud)

我确定我遗漏了一些令人尴尬的基本内容,但我无法在Google或stackoverflow档案中找到这个问题的答案.

Bre*_*arn 24

这里有两件事.首先,您通常不能通过执行import package然后尝试访问来访问包中的模块package.module.你经常要做你做过的事,import package.module或者(如果你不想一直打字package.module,你可以做from package import module.所以你也可以做from scipy import io.

其次,scipy.io模块不提供write_array功能.它看起来可能已经习惯了,但他们摆脱了它.您可能正在查看过时的教程.(你正在使用什么教程?)谷歌搜索,似乎他们建议使用numpy的savetxt功能,所以你可能想看看.

  • @gota:因为有些库自动导入它们的子模块而其他库没有(有些库自动导入一些子模块而不是其他子模块).在这种情况下,它看起来像numpy,而scipy则没有.如果有一个名为`blah`的库,它可以做`from.import foo,bar`,然后你就可以做`blah.foo.stuff`而不用`import blah.foo`,因为`blah`已经为你导入了`foo`.但是如果库本身没有明确地做到这一点,那么它就不会隐式地完成. (4认同)