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?

È stato utile?

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.

Se si proviene da MATLAB mondo, Pylab faciliterà la transizione. Una volta che hai convertito i dati in ASCII, pylab.load() farà il resto:

pylab.load(fname, comments='#', delimiter=None, converters=None, 
           skiprows=0, usecols=None, unpack=False, 
           dtype=<type 'numpy.float64'>)

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'])

Ho dato un'occhiata al mlabwrap come un passo per alleviare un po ' MATLAB sviluppatori in Python utilizzando di più.

Ma sono stato in grado di costruire in modo pulito, e io non eseguire la produzione installa qui, quindi sono morto in acqua.

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:

  1. Una risorsa bello (indipendente dalla piattaforma) - http://www.python-excel.org/
  2. 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)
  3. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top