Pergunta

Eu quero usar algumas bibliotecas Python para substituir MATLAB. Como eu poderia importar dados do Excel em Python (por exemplo, usando NumPy ) para usá-los?

Eu não sei se Python é uma alternativa credível ao MATLAB, mas quero tentar. Há um um tutorial?

Foi útil?

Solução

Dependendo do tipo de cálculos que você está fazendo com MATLAB (e em que caixas de ferramentas você está usando), Python pode ser uma boa alternativa para MATLAB.

Python + NumPy + SciPy + Matplotlib são a combinação certa para começar.

Para os dados, você pode, por exemplo, guardar os dados diretamente em arquivo de texto (assumindo que você não diz directamente respeito às questões de precisão de ponto flutuante) e lê-lo em Python .

Se seus dados são dados do Excel , onde cada valor é separado por um ";" , você pode, por exemplo, ler o arquivo linha por linha, e usar o método split () (com ";" como argumento). para obter cada valor

Para MATLAB até a versão 7.1, é possível carregar diretamente .mat arquivos do Python com o scipy.io.matlab.mio módulo.

Outras dicas

Matplotlib para parcelas e CSV módulo para a leitura de dados Excel (supondo que você pode despejar a CSV ).

Aqui está um tutorial sobre a substituição MATLAB com Python.

Se você vem do mundo MATLAB , Pylab vai facilitar a sua transição. Depois de ter convertido os seus dados para ASCII, pylab.load() fará o resto:

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

Existem provavelmente centenas de maneiras que você pode importar dados de texto em Python.

Mas desde que você deseja substituir MATLAB , você vai estar usando NumPy e, provavelmente, SciPy .

Mantenha as coisas simples: texto de carregamento padrão uso de NumPy:

import numpy
imported_array = numpy.loadtxt('file.txt',delimiter='\t')  # Assuming tab-delimiter
print imported_array.shape

Pandas é uma biblioteca de análise de dados Python que pode importar / exportar do Excel muito facilmente. Aqui está como fazê-lo:

http://pandas.pydata.org/pandas-docs/ estável / 10min.html # excel

Bater curso:

import pandas as pd
data = pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])

Eu tive uma olhada mlabwrap como um passo para aliviar alguns MATLAB desenvolvedores a usar Python mais.

Mas eu tenho sido incapaz de construir de forma limpa, e eu não correr produção instala aqui, então eu estou morto na água.

Se você salvou dados no MATLAB formato , use:

from scipy.io import loadmat

datafile = "yourfile.mat"
data = loadmat(datafile, matlab_compatible=True)
var1 = data['nameOfYourVariable'].squeeze()
var2 = data['nameOfYourOtherVariable'].squeeze()

"Eu não sei se Python é uma alternativa credível ao MATLAB"

Para mim (física experimental) Python não é apenas um substituto completo para MATLAB (ao incluir SciPy e Matplotlib como mencionado acima), mas é útil para muitos outros que coisas dados esmagando e visualização (tais são as necessidades gerais de programação).

"Eu vou tentar SAGE."

É interessante notar que há um par de servidores que executam Sábio que oferecer o environmet notebook (verifique Tente Sábio on-line em http://www.sagemath.org/ ). Este é bastante puro dado o fato de que tudo que você precisa é um navegador de Internet e acesso (não requer instalação).

Quanto à questão tal como interpretado por Kevin Buchs (em outra resposta), lendo proprietária Excel para Python pode ser feito em vários métodos, alguns são plataforma (OS) dependente:

  1. Um recurso agradável (independente de plataforma) - http://www.python-excel.org/
  2. Um exemplo usando xlrd que uma vez eu achei útil (isto é o que eu usei quando eu precisava lo): http://code.activestate.com/recipes/483742/ para um exemplo baseado em xlrd (independente de plataforma)
  3. pyexcelerator é outra opção.

Espero que isso ajude. Se não, eu posso tentar arranjar algum código de exemplo me (embora os que têm mais de seis anos de idade ...). Eu pessoalmente prefiro, como foi proposto em outras respostas, para usar o formato CSV ou ASCII.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top