我对Python还比较陌生。目前我正在使用Python来读取arff文件:
import arfffor 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文件中按属性和标签分离数据?
回答:
来自arff
模块的Row对象支持典型的Python数组切片,因此你可以轻松地将数据与标签分开
import arffX = []y = []for row in arff.load('cpu.arff'): X.append(row[:-1]) y.append(row[-1])