I've been trying to get started with scipy, but the package is giving me some problems. The tutorial leans heavily on scipy.io, but when I import scypi and try to use scipy.io, I get errors:
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'
I've run system updates and I uninstalled scipy then installed it again.
Interestingly enough, I can import the module this way:
In [1]: import scipy.io
But then when I try to use it, I get an error as soon as I use a method:
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'
I'm sure I'm missing something embarrassingly basic, but I've not been able to find an answer to this problem on Google or in the stackoverflow archives.
Two things here. First, you cannot in general access a module in a package by doing
import package
and then trying to accesspackage.module
. You often have to do what you did,import package.module
, or (if you don't want to typepackage.module
all the time, you can dofrom package import module
. So you can also dofrom scipy import io
.Second, the
scipy.io
module does not provide awrite_array
function. It looks like maybe it used to, but they got rid of it. You may be looking at an outdated tutorial. (What tutorial are you using?) Googling around, it seems they suggest to use numpy'ssavetxt
function instead, so you might want to look into that.