Python相当于MATLAB的数据集数组

时间:2013-05-07 18:22:51

标签: python matlab dataset machine-learning

我正在尝试将一些代码从MATLAB转换为Python。是否有Python等效于MATLAB的数据集阵列? http://www.mathworks.com/help/stats/dataset-arrays.html

4 个答案:

答案 0 :(得分:3)

您应该查看pandas库,它是在R的数据框之后建模的。

更不用说这比MATLAB的数据集

更好

答案 1 :(得分:3)

如果要对数据集执行数值运算,numpy将是最佳选择。 您可以通过组合基本numpy dtypes来指定任意记录类型,并通过其字段名称访问记录,类似于Python的内置字典访问。

import numpy
myDtype = numpy.dtype([('name', numpy.str_), ('age', numpy.int32), ('score', numpy.float64)])
myData = numpy.empty(10, dtype=myDtype) # Create empty data sets
print myData['age'] # prints all ages

您甚至可以使用numpy中的tofile和'fromfile`函数保存并重新加载这些数据,并继续使用命名字段:

with open('myfile.txt', 'wb') as f:
    numpy.ndarray.tofile(myData, f)

with open('myfile.txt', 'rb') as f:
    loadedData = numpy.fromfile(f, dtype=myDtype)
    print loadedData['age']

答案 2 :(得分:1)

Python dictionary可以包含字符串或数字的键,甚至包含其他字典:

>>> d = {"name":"foo", "age":22, "props": {"value":2.1}}
>>> d['props']['value']
2.1

我假设这是您要根据您链接到的网站上的引用移植的内容:

  

Statistics Toolbox™具有用于存储变量的数据集数组   异构数据类型。例如,您可以组合数字数据,   逻辑数据,字符串的单元格数组和分类数组   数据集数组变量。

答案 3 :(得分:0)

看看Numpy,它是第三方库,主要用于Python的科学计算。还有一个覆盖Numpy for Matlab users的页面。

我认为您正在寻找Numpy.array