Использование Python для замены MATLAB: как импортировать данные?
Я хочу использовать некоторые библиотеки Python для замены MATLAB. Как импортировать данные Excel в Python (например, используя NumPy), чтобы использовать их?
Я не знаю, является ли Python надежной альтернативой MATLAB, но я хочу попробовать. Есть ли учебник?
Ответы
Ответ 1
В зависимости от того, какие вычисления вы делаете с MATLAB (и на каких инструментах вы используете), Python может быть хорошая альтернатива MATLAB.
Python + NumPy + SciPy + Matplotlib - правильная комбинация для запуска.
Для данных вы можете, например, сохранить свои данные непосредственно в текстовом файле (при условии, что вас не интересуют проблемы с плавающей запятой) и прочитайте его в Python.
Если ваши данные Excel, где каждое значение разделяется символом ";", вы можете, например, прочитать файл line by line и использовать метод split() (с аргументом ";" в качестве аргумента) для получения каждого значения.
Для MATLAB до версии 7.1 можно напрямую загружать файлы .mat из Python с помощью scipy.io.matlab.mio модуль.
Ответ 2
Здесь Matplotlib для графиков и csv module для чтения Excel данных (при условии, что вы можете сбрасывать CSV).
Здесь учебник о замене MATLAB с Python.
Ответ 3
Если вы пришли из MATLAB мира, Pylab облегчит ваш переход. После преобразования данных в ASCII, pylab.load()
сделает все остальное:
pylab.load(fname, comments='#', delimiter=None, converters=None,
skiprows=0, usecols=None, unpack=False,
dtype=<type 'numpy.float64'>)
Ответ 4
Есть, вероятно, сотни способов импортировать текстовые данные в Python.
Но поскольку вы хотите заменить MATLAB, вы будете использовать NumPy и, возможно, SciPy.
Держите вещи просто: используйте стандартную текстовую загрузку NumPy:
import numpy
imported_array = numpy.loadtxt('file.txt',delimiter='\t') # Assuming tab-delimiter
print imported_array.shape
Ответ 5
Я просмотрел mlabwrap как шаг к ослаблению MATLAB в использовании Python.
Но я не смог его полностью построить, и я не запускаю производственные установки здесь, поэтому я мертв в воде.
Ответ 6
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'])
Ответ 7
Если вы сохранили данные в формате MATLAB, используйте:
from scipy.io import loadmat
datafile = "yourfile.mat"
data = loadmat(datafile, matlab_compatible=True)
var1 = data['nameOfYourVariable'].squeeze()
var2 = data['nameOfYourOtherVariable'].squeeze()
Ответ 8
"Я не знаю, является ли Python надежной альтернативой MATLAB"
Для меня (экспериментальная физика) Python - это не только полная замена MATLAB (при включении SciPy и Matplotlib, как упоминалось выше), но это полезно для многих других чем хруст данных и визуализация (такие как общие потребности программирования).
"Я собираюсь попробовать SAGE".
Стоит отметить, что существует несколько серверов, работающих под управлением Sage, которые предлагают среду для ноутбука (проверьте Попробуйте Sage онлайн в http://www.sagemath.org/). Это довольно аккуратно, учитывая тот факт, что все, что вам нужно, это интернет-браузер и доступ (установка не требуется).
Что касается вопроса, который интерпретируется Кевином Бучем (в другом ответе), чтение проприетарного Excel на Python может выполняться несколькими способами, некоторые из которых зависят от платформы (OS):
Надеюсь, это поможет. Если нет, я могу попытаться устроить какой-то примерный код сам (хотя те, которые у меня есть, старше шести лет...). Я лично предпочитаю, как было предложено в других ответах, использовать формат CSV или ASCII.