我想用一些Python库来代替MATLAB。如何在Python中导入Excel数据(例如使用NumPy)来使用它们?
我不知道Python是否是MATLAB的可靠替代品,但我想尝试一下。有没有教程?
答案 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 tutorial的MATLAB。
答案 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)
答案 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的完全替代品(如上所述,当包括SciPy和Matplotlib时),但它对除了数据处理和可视化(例如一般编程需求)。
“我要去尝试SAGE。”
值得注意的是,有一些运行Sage的服务器提供了笔记本环境(在Try Sage online中检查http://www.sagemath.org/)。这是非常巧妙的,因为您需要的只是一个Internet浏览器和访问(无需安装)。
至于Kevin Buchs解释的问题(在另一个答案中),将专有Excel读取到Python可以通过多种方法完成,其中一些方法依赖于平台(OS):
我希望这会有所帮助。如果没有,我可以尝试自己安排一些示例代码(虽然我拥有的代码超过六年......)。我个人更喜欢使用CSV或ASCII格式,正如在其他答案中提出的那样。