用Python代替MATLAB:如何导入数据?

时间:2009-06-29 10:44:24

标签: python excel matlab numpy

我想用一些Python库来代替MATLAB。如何在Python中导入Excel数据(例如使用NumPy)来使用它们?

我不知道Python是否是MATLAB的可靠替代品,但我想尝试一下。有没有教程?

8 个答案:

答案 0 :(得分:12)

根据您使用MATLAB(以及您正在使用的工具箱)进行的计算类型,Python可以替代MATLAB。

Python + NumPy + SciPy + Matplotlib是正确的组合。

对于数据,您可以,例如,将数据直接保存在文本文件中(假设您不直接关注浮点精度问题)并在Python中读取它。

如果您的数据是Excel数据,其中每个值用“;”分隔,您可以例如逐行读取文件,并使用split()方法(使用“;”作为参数获得每个价值。

对于最高版本为7.1的MATLAB,可以使用scipy.io.matlab.mio模块从Python直接加载.mat文件。

答案 1 :(得分:3)

图表有Matplotlib,阅读csv module数据的Excel(假设您可以转储到CSV)。

以下是关于用Python替换a tutorialMATLAB

答案 2 :(得分:3)

如果您来自MATLAB世界,Pylab将简化您的过渡。将数据转换为ASCII后,pylab.load()将完成剩下的工作:

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

答案 3 :(得分:3)

可能有数百种方法可以将文本数据导入Python。

但是,由于您要替换MATLAB,您将使用NumPy,可能还会使用SciPy

保持简单:使用NumPy的标准文本加载:

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

答案 4 :(得分:3)

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'])

答案 5 :(得分:2)

我看了mlabwrap,这是让一些MATLAB开发人员更容易使用Python的一步。

但我一直无法干净地建造它,而且我没有在这里进行生产安装,所以我已经死在水里。

答案 6 :(得分:1)

如果您以MATLAB格式保存了数据,请使用:

from scipy.io import loadmat

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

答案 7 :(得分:1)

  

“我不知道Python是否是MATLAB的可靠替代品”

对我来说(实验物理学)Python不仅是MATLAB的完全替代品(如上所述,当包括SciPyMatplotlib时),但它对除了数据处理和可视化(例如一般编程需求)。

  

“我要去尝试SAGE。”

值得注意的是,有一些运行Sage的服务器提供了笔记本环境(在Try Sage online中检查http://www.sagemath.org/)。这是非常巧妙的,因为您需要的只是一个Internet浏览器和访问(无需安装)。

至于Kevin Buchs解释的问题(在另一个答案中),将专有Excel读取到Python可以通过多种方法完成,其中一些方法依赖于平台(OS):

  1. 一个不错的资源(独立于平台) - http://www.python-excel.org/
  2. 使用我曾经发现有用的xlrd的示例(这是我在需要时使用的):http://code.activestate.com/recipes/483742/示例基于xlrd(独立于平台)
  3. pyexcelerator是另一种选择。
  4. 我希望这会有所帮助。如果没有,我可以尝试自己安排一些示例代码(虽然我拥有的代码超过六年......)。我个人更喜欢使用CSV或ASCII格式,正如在其他答案中提出的那样。