Utilizzando Python per sostituire MATLAB: come importare i dati?
Domanda
Vorrei utilizzare alcune librerie Python per sostituire MATLAB. Come avrei potuto importare i dati di Excel in Python (ad esempio utilizzando NumPy ) per usarli?
Non so se Python è un'alternativa credibile a MATLAB, ma voglio provarlo. C'è un un tutorial?
Soluzione
A seconda del tipo di calcoli che si sta facendo con MATLAB (e su cui si toolboxes si utilizza), Python potrebbe essere una buona alternativa a MATLAB.
NumPy + SciPy + Matplotlib sono la giusta combinazione per iniziare.
Per i dati, è possibile, ad esempio, salvare i dati direttamente in file di testo (supponendo che non sono direttamente interessate da problemi di precisione in virgola mobile) e leggerlo in Python .
Se i dati sono dati di Excel , dove ogni valore è separato da un ";" , si può per esempio leggere il file riga per riga, e utilizzare il metodo split () (con ";" come argomento). per ottenere ogni valore
Per MATLAB fino alla versione 7.1, è possibile caricare direttamente i file dal .mat Python con il scipy.io.matlab.mio modulo.
Altri suggerimenti
Matplotlib per trame e la modulo csv per la lettura di Excel dati (supponendo che potete scaricare a CSV ).
Ecco un tutorial di sostituire MATLAB con Python.
Ci sono probabilmente centinaia di modi in cui è possibile importare dati di testo in Python.
Ma dal momento che si desidera sostituire MATLAB , si sta andando essere utilizzando NumPy e, probabilmente, SciPy .
Mantenere le cose semplici: usare standard di text-carico di NumPy:
import numpy
imported_array = numpy.loadtxt('file.txt',delimiter='\t') # Assuming tab-delimiter
print imported_array.shape
Panda è una libreria di analisi dei dati Python che possono importare / esportare da Excel piuttosto facilmente. Ecco come fare:
http://pandas.pydata.org/pandas-docs/ stabili / 10min.html # eccellono
Corso accelerato:
import pandas as pd
data = pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
Se avete salvato i dati in formato MATLAB , uso:
from scipy.io import loadmat
datafile = "yourfile.mat"
data = loadmat(datafile, matlab_compatible=True)
var1 = data['nameOfYourVariable'].squeeze()
var2 = data['nameOfYourOtherVariable'].squeeze()
"Io non so se Python è un'alternativa credibile a MATLAB"
Per me (fisica sperimentale) Python non è solo una sostituzione completa per MATLAB (quando inclusi SciPy e Matplotlib come detto sopra), ma è utile per molte cose diversi dai dati scricchiolio e visualizzazione (sono tali esigenze generali di programmazione).
"Sto andando a cercare SAGE".
Vale la pena notare che ci sono un paio di server che eseguono Sage che offrire l'environmet notebook (controllare Prova Sage linea in http://www.sagemath.org/ ). Questo è abbastanza pulito dato il fatto che tutto ciò che serve è un browser Internet e l'accesso (non richiede installazione).
Per quanto riguarda la domanda, come interpretato da Kevin Buchs (in un'altra risposta), la lettura di proprietà di Excel a Python può essere fatto in diversi metodi, alcuni sono piattaforma (OS) in funzione:
- Una risorsa bello (indipendente dalla piattaforma) - http://www.python-excel.org/
- Un esempio utilizzando XLRD che una volta ho trovato utile (questo è quello che ho usato quando ho avuto bisogno it): http://code.activestate.com/recipes/483742/ per un esempio sulla base di XLRD (indipendente dalla piattaforma)
- pyexcelerator è un'altra opzione.
Spero che questo aiuta. In caso contrario, posso provare a organizzare qualche esempio di codice stesso (anche se quelli che ho sono più di sei anni ...). Io personalmente preferisco, come è stato proposto nelle altre risposte, di utilizzare il formato CSV o ASCII.