Использование Python для замены MATLAB:как импортировать данные?
Вопрос
Я хочу использовать некоторые библиотеки Python для замены MATLAB.Как я мог бы импортировать данные Excel в Python (например, используя NumPy) чтобы использовать их?
Я не знаю, является ли Python надежной альтернативой MATLAB, но я хочу попробовать его.Есть ли какой-нибудь учебник?
Решение
В зависимости от того, с какими вычислениями вы работаете MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ (и на каких наборах инструментов вы используете), Python мог бы стать хорошей альтернативой MATLAB.
Питон + NumPy + СциПи + Matplotlib - Файл это правильная комбинация для начала.
Что касается данных, вы можете, например, сохранить свои данные непосредственно в текстовый файл (при условии, что вас напрямую не беспокоят проблемы точности с плавающей запятой) и прочитать их в Питон.
Если ваши данные являются Преуспеть данные, где каждое значение разделено символом ";", вы можете, например, прочитать файл построчно и использовать метод split() (с ";" в качестве аргумента) для получения каждого значения.
Для MATLAB вплоть до версии 7.1 можно напрямую загружать файлы .mat из Python с помощью scipy.io.matlab.mio модуль.
Другие советы
Там есть Matplotlib - Файл для участков и модуль csv для чтения Преуспеть данные (при условии, что вы можете сбросить в CSV - файл).
Вот учебное пособие о замене MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ с помощью Python.
Если вы пришли из MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ Мир, Пилаб облегчит ваш переход.Как только вы преобразуете свои данные в ASCII, pylab.load()
сделаю все остальное:
pylab.load(fname, comments='#', delimiter=None, converters=None,
skiprows=0, usecols=None, unpack=False,
dtype=<type 'numpy.float64'>)
Вероятно, существуют сотни способов импортировать текстовые данные в Python.
Но поскольку вы хотите заменить MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ, вы собираетесь использовать NumPy и , вероятно , СциПи.
Держите вещи простыми:используйте стандартную текстовую загрузку NumPy:
import numpy
imported_array = numpy.loadtxt('file.txt',delimiter='\t') # Assuming tab-delimiter
print imported_array.shape
Pandas - это библиотека анализа данных Python, которую можно довольно легко импортировать / экспортировать из Excel.Вот как это сделать:
http://pandas.pydata.org/pandas-docs/stable/10min.html#excel
Ускоренный курс:
import pandas as pd
data = pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
Я взглянул на mlabwrap ( обертка ) в качестве шага к ослаблению некоторых MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ разработчики больше используют Python.
Но мне не удалось создать его чисто, и я не запускаю здесь производственные установки, так что я в тупике.
Если вы сохранили свои данные в MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ формат, использование:
from scipy.io import loadmat
datafile = "yourfile.mat"
data = loadmat(datafile, matlab_compatible=True)
var1 = data['nameOfYourVariable'].squeeze()
var2 = data['nameOfYourOtherVariable'].squeeze()
"Я не знаю, является ли Python надежной альтернативой MATLAB"
Для меня (экспериментальная физика) Python - это не только полная замена MATLAB - МАТЕМАТИЧЕСКАЯ ЛАБОРАТОРИЯ (когда в том числе СциПи и Matplotlib - Файл как упоминалось выше), но это полезно для многих других целей, помимо обработки данных и визуализации (таковы общие потребности программирования).
"Я собираюсь попробовать ШАЛФЕЙ".
Стоит отметить, что есть пара запущенных серверов Мудрец которые предлагают ноутбук environmet (проверьте Попробуйте Шалфей онлайн в http://www.sagemath.org/).Это довольно удобно, учитывая тот факт, что все, что вам нужно, - это интернет-браузер и доступ (установка не требуется).
Что касается вопроса, интерпретированного Кевином Буксом (в другом ответе), чтение проприетарного Excel в Python может быть выполнено несколькими способами, некоторые из которых зависят от платформы (ОС):
- Хороший ресурс (не зависит от платформы) - http://www.python-excel.org/
- Пример использования xlrd - й который я когда-то нашел полезным (это то, что я использовал, когда мне это было нужно).: http://code.activestate.com/recipes/483742/ для примера, основанного на xlrd (независимом от платформы)
- ускоритель pyexcelerator есть еще один вариант.
Я надеюсь, что это поможет.Если нет, я могу попытаться сам привести в порядок какой-нибудь пример кода (хотя тем, что у меня есть, больше шести лет ...).Лично я предпочитаю, как было предложено в других ответах, использовать формат CSV или ASCII.