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

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

有帮助吗?

解决方案

取决于您正在执行的计算类型 MATLAB (以及您使用的工具箱),Python 可能是 MATLAB 的一个很好的替代品。

Python+ 数值模拟 + 科学Py + Matplotlib 是开始的正确组合。

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

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

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

其他提示

Matplotlib 对于情节和 csv模块 用于阅读 Excel 数据(假设您可以转储到 CSV).

这是 教程 关于更换 MATLAB 使用Python。

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

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

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

但既然你想更换 MATLAB, ,你将要使用 数值模拟 或许 科学Py.

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

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

熊猫是一个Python数据分析库,可以从Excel导入/导出很容易地。以下是如何做到这一点:

http://pandas.pydata.org/pandas-docs/稳定/ 10min.html#练成

速成班:

import pandas as pd
data = pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])

我看了一下 姆拉布包装 作为放松一些措施的一步 MATLAB 开发人员更多地使用Python。

但我一直无法干净地构建它,而且我不在这里运行生产安装,所以我已经死在水里了。

如果保存您在 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 (当包括 科学PyMatplotlib 如上所述),但它对于数据处理和可视化之外的许多事情都很有用(例如一般编程需求)。

“我要试试SAGE。”

值得注意的是,有几台服务器正在运行 智者 提供笔记本环境(检查 在线试用 Sagehttp://www.sagemath.org/)。考虑到您所需要的只是一个互联网浏览器和访问权限(无需安装),这非常简洁。

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

  1. 一个不错的资源(独立于平台)- http://www.python-excel.org/
  2. 一个使用的例子 xlrd 我曾经发现它很有用(这就是我需要时使用的): http://code.activestate.com/recipes/483742/ 基于 xlrd 的示例(平台无关)
  3. pyexcelerator 是另一种选择。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top