Использование 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):

  • Хороший ресурс (независимый от платформы) - http://www.python-excel.org/
  • Пример использования xlrd, который я когда-то нашел полезным (это то, что я использовал, когда мне это нужно): http://code.activestate.com/recipes/483742/ для примера на основе xlrd (независимая от платформы)
  • pyexcelerator - еще один вариант.

Надеюсь, это поможет. Если нет, я могу попытаться устроить какой-то примерный код сам (хотя те, которые у меня есть, старше шести лет...). Я лично предпочитаю, как было предложено в других ответах, использовать формат CSV или ASCII.