2012-06-23 17 views
7

Próbowałem zacząć od scipy, ale pakiet daje mi pewne problemy. Tutorial pochyla się mocno na scipy.io, ale kiedy importować scypi i spróbuj użyć scipy.io, pojawiają się błędy:Dlaczego nie mogę użyć pliku 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' 

Zabrakło mi aktualizacje systemu i odinstalowałem scipy następnie zainstalować go ponownie.

Co ciekawe, mogę zaimportować moduł ten sposób:

In [1]: import scipy.io 

Ale gdy próbuję go użyć, otrzymuję komunikat o błędzie, jak tylko zastosować metodę:

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' 

Na pewno brakuje mi czegoś zawstydzającego, ale nie znalazłem odpowiedzi na ten problem w Google ani w archiwach stackoverflow.

+0

'write_array' nie jest w' scipy.io', jest w ['scipy.io.array_import'] (http://www.scipy.org/doc/api_docs /SciPy.io.array_import.html#write_array). Czy 'scipy.io.array_import.write_array' (po "import scipy.io.array_import") działa? Jakiego samouczka obserwujesz? –

Odpowiedz

15

Dwie rzeczy tutaj. Po pierwsze, nie można w ogóle uzyskać dostępu do modułu w pakiecie, wykonując import package, a następnie próbując uzyskać dostęp do package.module. Często trzeba robić to, co zrobiłeś, import package.module, lub (jeśli nie chcesz wpisywać package.module cały czas, można zrobić from package import module. Więc można również zrobić from scipy import io.

drugie, moduł scipy.io nie przewiduje to wygląda na to, że być może kiedyś, ale się go pozbyli.Możesz spojrzeć na przestarzały samouczek. (Jakiego samouczka używasz?) Googling, wygląda na to, że sugerują użycie funkcji numpy zamiast więc warto się nad tym zastanowić:

+0

Tak, wydaje się, że samouczek, którego używałem (http://cutter.rexx.com/~dkuhlman/scipy_course_01.html) był strasznie nieaktualny. Nie pamiętam nawet, jak do tego trafiłem, ale znalazłem tę na stronie scipy (http://docs.scipy.org/doc/scipy/reference/tutorial/), której będę teraz używał. Dziękuję za wyjaśnienie mojego pomyłki importowej! –

+0

Dokumentacja nie była wtedy bardzo przestarzała. 'write_array' został przeniesiony z' scipy.io' na 'scipy.io.array_import' (bardzo) w przybliżeniu półtora roku przed twoim oryginalnym wpisem, a następnie wkrótce po usunięciu go całkowicie na rzecz' savetxt' i przyjaciół. –

+0

Teraz możesz po prostu użyć metody 'tofile', która jest bezpośrednio na' ndarray'. To jeszcze łatwiejsze. –

Powiązane problemy