2012-06-23 21 views
7

Ho cercato di iniziare con scipy, ma il pacchetto mi sta dando dei problemi. Il tutorial si appoggia pesantemente su scipy.io, ma quando ho importazione scypi e cerco di usare scipy.io, ottengo errori:Perché non posso usare 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' 

ho eseguire gli aggiornamenti di sistema e ho disinstallato SciPy poi installato di nuovo.

Abbastanza interessante, posso importare il modulo in questo modo:

In [1]: import scipy.io 

Ma poi quando cerco di usarlo, ottengo un errore non appena io uso un metodo:

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' 

Sono sicuro che mi manca qualcosa di imbarazzante, ma non sono stato in grado di trovare una risposta a questo problema su Google o negli archivi StackOverflow.

+0

'write_array' non è in' scipy.io', è in ['scipy.io.array_import'] (http://www.scipy.org/doc/api_docs /SciPy.io.array_import.html#write_array). Scipy.io.array_import.write_array' (dopo "import scipy.io.array_import') funziona? Che tutorial segui? –

risposta

15

Due cose qui. Innanzitutto, non è possibile accedere in generale a un modulo in un pacchetto eseguendo import package e quindi tentando di accedere a package.module. Spesso devi fare quello che hai fatto, import package.module, o (se non si desidera digitare package.module tutto il tempo, si può fare from package import module. Così si può anche fare from scipy import io.

In secondo luogo, il modulo scipy.io non prevede una funzione di write_array. Sembra che forse era abituata, ma se ne sono sbarazzati Forse stai guardando un tutorial obsoleto. (Che tutorial stai usando?) Cercando su Google, sembra che suggeriscano di utilizzare la funzione di numpy savetxt, quindi potresti volerlo esaminare.

+0

Sì, sembra che il tutorial che stavo usando (http://cutter.rexx.com/~dkuhlman/scipy_course_01.html) era terribilmente superato. Non ricordo nemmeno come mi sono imbattuto ora, ma ho trovato quello sul sito scipy (http://docs.scipy.org/doc/scipy/reference/tutorial/) che userò da ora in poi. Grazie per aver chiarito anche la mia confusione sulle importazioni! –

+0

La documentazione non era terribilmente obsoleta al momento. 'write_array' è stato spostato da' scipy.io' a 'scipy.io.array_import' (molto) all'incirca un anno e mezzo prima del tuo post originale, poi subito dopo rimosso completamente in favore di' savetxt' e amici. –

+0

Inoltre, ora puoi semplicemente usare il metodo 'tofile' direttamente su' ndarray'. È ancora più facile. –

Problemi correlati