11

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

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

4

8 回答 8

11

根据您使用MATLAB进行的计算类型(以及您使用的工具箱),Python 可能是 MATLAB 的一个很好的替代品。

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

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

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

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

于 2009-06-29T11:06:15.737 回答
3

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

但是由于您想替换MATLAB,因此您将使用NumPy并且可能使用SciPy

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

import numpy
imported_array = numpy.loadtxt('file.txt',delimiter='\t')  # Assuming tab-delimiter
print imported_array.shape
于 2009-07-23T18:30:04.407 回答
3

Pandas is a Python data analysis library that can import/export from Excel pretty easily. Here's how to do it:

http://pandas.pydata.org/pandas-docs/stable/10min.html#excel

Crash course:

import pandas as pd
data = pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
于 2014-09-08T03:44:12.040 回答
2

有用于绘图的Matplotlib和用于读取Excel数据的csv 模块(假设您可以转储到CSV)。

这是一个关于用Python替换MATLAB的教程。

于 2009-06-29T10:58:24.490 回答
2

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

pylab.load(fname, comments='#', delimiter=None, converters=None, 
           skiprows=0, usecols=None, unpack=False, 
           dtype=<type 'numpy.float64'>)
于 2009-06-29T11:22:04.707 回答
2

我将mlabwrap看作是让一些MATLAB开发人员更多地使用 Python 的一个步骤。

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

于 2009-06-29T15:55:29.317 回答
1

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

from scipy.io import loadmat

datafile = "yourfile.mat"
data = loadmat(datafile, matlab_compatible=True)
var1 = data['nameOfYourVariable'].squeeze()
var2 = data['nameOfYourOtherVariable'].squeeze()
于 2010-10-26T18:56:15.633 回答
1

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

对我来说(实验物理学)Python 不仅是MATLAB的完全替代品(当包括上面提到的SciPyMatplotlib时),但它对除数据处理和可视化之外的许多事情(如一般编程需求)很有用。

“我要试试 SAGE。”

值得注意的是,有几台运行Sage的服务器提供笔记本环境(在http://www.sagemath.org/在线查看 Try Sage)。考虑到您只需要一个 Internet 浏览器和访问权限(无需安装),这非常简洁。

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

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

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

于 2012-03-21T13:12:26.370 回答