【问题标题】:How to deal with data from arff file with python?如何用python处理arff文件中的数据?
【发布时间】:2016-02-09 13:31:18
【问题描述】:

我对 python 很陌生。我现在正在使用 python 读取 arff 文件:

import arff

for row in arff.load('cpu.arff'):   
    x = row
    print(x)

样本输出部分是这样的格式:

<Row(125.0,256.0,6000.0,256.0,16.0,128.0,198.0)>
<Row(29.0,8000.0,32000.0,32.0,8.0,32.0,269.0)>
<Row(29.0,8000.0,32000.0,32.0,8.0,32.0,220.0)>
<Row(29.0,8000.0,32000.0,32.0,8.0,32.0,172.0)>
<Row(29.0,8000.0,16000.0,32.0,8.0,16.0,132.0)>
<Row(26.0,8000.0,32000.0,64.0,8.0,32.0,318.0)>
<Row(23.0,16000.0,32000.0,64.0,16.0,32.0,367.0)>

其实只有最后一列数据是标签,其余数据是属性。我想知道如何使用数组来保存它们? 因为我想把最后一列的数据赋值为y,前六列的数据赋值为我的x,然后我会对arff文件中的数据做交叉验证。

或者有什么方法可以自动从arff文件中按属性和标签分离数据?

【问题讨论】:

  • 如果row是一个数组,那么你可以使用x = row[:-1]y = row[6]

标签: python machine-learning arff


【解决方案1】:

来自arff 模块support typical python array slicing 的行对象,因此您可以轻松地将数据与标签分离

import arff

X = []
y = []

for row in arff.load('cpu.arff'):   
    X.append(row[:-1])
    y.append(row[-1])

【讨论】:

  • 我正在尝试像你说的那样,但我得到“TypeError:unhashable type”。有什么想法吗?泰:)
  • 显示确切的代码,上面的不需要散列,也许你使用集合/字典而不是列表?
猜你喜欢
  • 2014-11-13
  • 1970-01-01
  • 2020-02-22
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 2021-12-17
相关资源
最近更新 更多