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

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

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

根据您使用MATLAB进行哪种计算(以及您正在使用的工具箱),Python可能是MATLAB的一个很好的select。

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

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

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

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

有Matplotlib的情节和csv模块读取Excel数据(假设你可以转储到CSV )。

这是一个关于用PythonreplaceMATLAB 的教程 。

如果你来自MATLAB世界, Pylab将缓解你的过渡。 一旦将数据转换为ASCII, pylab.load()将完成剩下的工作:

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

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

但是既然你想要replaceMATLAB ,你将会使用NumPy和SciPy 。

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

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

我看了一下mlabwrap,作为简化一些MATLAB开发人员使用Python的一个步骤。

但是我一直无法干净地构build它,而且我不在这里进行生产安装,所以我死在水中。

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

如果您以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的完全替代品(包括上面提到的SciPy和Matplotlib ),而且除了数据处理和可视化之外(比如一般的编程需求),它还是很有用的。

“我要去试试SAGE。”

值得注意的是,有几台运行Sage的服务器提供了笔记本环境(在http://www.sagemath.org/ 在线查看Try Sage )。 这是相当整洁的事实,所有你需要的是一个互联网浏览器和访问(不需要安装)。

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

  1. 一个很好的资源(独立平台) – http://www.python-excel.org/
  2. 使用xlrd的一个例子,我曾经觉得有用(这是我在需要时使用的): http ://code.activestate.com/recipes/483742/基于xlrd(平台无关)
  3. pyexcelerator是另一种select。

我希望这有帮助。 如果没有,我可以尝试自己安排一些示例代码(虽然我已经有六年多了)。 正如其他答案中所提出的,我个人更喜欢使用CSV或ASCII格式。