2009-06-29 18 views
11

Chcę użyć niektórych bibliotek Pythona do zastąpienia MATLAB. Jak mogę zaimportować dane Excela w Pythonie (na przykład używając NumPy), aby z nich korzystać?Używanie Pythona do zastąpienia MATLAB: jak importować dane?

Nie wiem, czy Python jest wiarygodną alternatywą dla MATLAB, ale chcę go wypróbować. Czy jest samouczek?

+0

Jednym ze sposobów interpretacji oryginalnego pytanie brzmi: w jaki sposób mogę odczytać (.xls), .xlsx plik (Proprietary) Excel w Pythonie. Odpowiedź na to pytanie może być przydatna, ale go nie mam. Ogólny przepływ tutaj polega na eksportowaniu w innym formacie z Excela, a mianowicie CSV. –

Odpowiedz

11

W zależności od rodzaju obliczeń wykonywanych z MATLAB (i na których używanych skrzynkach narzędziowych), Python może być dobrą alternatywą dla MATLAB.

Python + NumPy + SciPy + Matplotlib to odpowiednia kombinacja do uruchomienia.

Dla danych można na przykład zapisać dane bezpośrednio w pliku tekstowym (zakładając, że nie dotyczy to bezpośrednio problemów z precyzją zmiennoprzecinkowa) i przeczytać w Python.

Jeśli dane są danymi Excel, gdzie każda wartość jest oddzielona znakiem ";", można na przykład odczytać wiersz pliku po wierszu i użyć metody split() (z ";" jako argumentem), aby uzyskać każda wartość.

Dla MATLAB do wersji 7.1 możliwe jest bezpośrednie ładowanie plików .mat z Pythona przy pomocy modułu scipy.io.matlab.mio.

3

Jest Matplotlib dla działek i csv module do czytania Excel danych (zakładając, że można zrzucić do CSV).

Oto a tutorial o zastąpieniu MATLAB przez Python.

+2

SAGE (wymienić w samouczku, zobacz http://sagemath.org/) to całkiem fajny stos oparty na Pythonie. – stephan

+0

Bardzo dużo. Mam zamiar spróbować SAGE. – clowny

3

Jeśli pochodzisz ze świata MATLAB, ułatwi to przejście. Po dokonaniu konwersji danych ASCII, pylab.load() zrobi resztę:

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

miałem przyjrzeć mlabwrap jako krok do złagodzenia niektórych MATLAB programistów do korzystania Python więcej.

Ale nie byłem w stanie go dokładnie zbudować i nie instaluję tutaj instalacji produkcyjnych, więc jestem martwy w wodzie.

3

Istnieją prawdopodobnie setki sposobów importowania danych tekstowych do Pythona.

Ale ponieważ chcesz zastąpić MATLAB, będziesz używać NumPy i prawdopodobnie SciPy.

przechowywać rzeczy proste: użyć NumPy za standardowy tekst-ładowania:

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

Jeśli zapisałeś wam dane w formacie MATLAB, przeznaczenie:

from scipy.io import loadmat 

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

„Ja nie wiem, czy Pythonie to wiarygodna alternatywa dla MATLAB "

Dla mnie (eksperymentalny fizyk ics) Python jest nie tylko pełnym zamiennikiem dla MATLAB (gdy włączyliśmy SciPy i Matplotlib, jak wspomniano powyżej), ale jest przydatny dla wielu innych rzeczy niż chrupanie danych i wizualizacja (takie są ogólne potrzeby programistyczne).

"Mam zamiar spróbować SAGE."

Warto zauważyć, że istnieje kilka serwerów z systemem Sage które oferują environmet notebooka (sprawdź Try Sage online w http://www.sagemath.org/). Jest to całkiem niezłe, biorąc pod uwagę fakt, że wszystko, czego potrzebujesz, to przeglądarka internetowa i dostęp (nie wymaga instalacji).

chodzi o pytanie, jak interpretować Kevin Buchs (w innym odpowiedź), czytanie zastrzeżonych Excel Pythonie można zrobić na kilka sposobów, niektóre są platformy (OS) zależne:

  1. A nice zasobu (platforma niezależny) - http://www.python-excel.org/
  2. przykładem korzystania xlrd które kiedyś znaleźć przydatne (to co kiedyś, gdy potrzeby): http://code.activestate.com/recipes/483742/ na przykład w oparciu o xlrd (niezależny od platformy)
  3. pyexcelerator ma innej opcji.

Mam nadzieję, że to pomoże. Jeśli nie, mogę spróbować samemu podać przykładowy kod (chociaż te, które mam, mają ponad sześć lat ...). Osobiście wolę, jak zaproponowano w innych odpowiedziach, używać formatu CSV lub ASCII.

Powiązane problemy