scipy.io.arff.

loadarff#

scipy.io.arff.loadarff(f)[source]#

读取 arff 文件。

数据以记录数组的形式返回,可以像访问 NumPy 数组的字典一样访问它。例如,如果一个属性名为“pressure”,那么它的前 10 个数据点可以从 data 记录数组中访问,如下所示:data['pressure'][0:10]

参数::
**f**类似文件或字符串

要从中读取的类似文件对象,或要打开的文件名。

返回值::
**data**记录数组

arff 文件的数据,可以通过属性名称访问。

**meta**MetaData

包含有关 arff 文件的信息,例如属性的名称和类型、关系(数据集的名称)等。

引发::
ParseArffError

如果给定的文件不是 ARFF 格式,则会引发此错误。

NotImplementedError

ARFF 文件具有当前不支持的属性。

注释

此函数应该能够读取大多数 arff 文件。未实现的功能包括

  • 日期类型属性

  • 字符串类型属性

它可以读取具有数字和名义属性的文件。它无法读取具有稀疏数据(文件中的 {})的文件。但是,此函数可以读取具有缺失数据(文件中的 ?)的文件,将数据点表示为 NaN。

示例

>>> from scipy.io import arff
>>> from io import StringIO
>>> content = """
... @relation foo
... @attribute width  numeric
... @attribute height numeric
... @attribute color  {red,green,blue,yellow,black}
... @data
... 5.0,3.25,blue
... 4.5,3.75,green
... 3.0,4.00,red
... """
>>> f = StringIO(content)
>>> data, meta = arff.loadarff(f)
>>> data
array([(5.0, 3.25, 'blue'), (4.5, 3.75, 'green'), (3.0, 4.0, 'red')],
      dtype=[('width', '<f8'), ('height', '<f8'), ('color', '|S6')])
>>> meta
Dataset: foo
    width's type is numeric
    height's type is numeric
    color's type is nominal, range is ('red', 'green', 'blue', 'yellow', 'black')