用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)的:
- 一个很好的资源(独立平台) – http://www.python-excel.org/
- 使用xlrd的一个例子,我曾经觉得有用(这是我在需要时使用的): http ://code.activestate.com/recipes/483742/基于xlrd(平台无关)
- pyexcelerator是另一种select。
我希望这有帮助。 如果没有,我可以尝试自己安排一些示例代码(虽然我已经有六年多了)。 正如其他答案中所提出的,我个人更喜欢使用CSV或ASCII格式。