2015-11-08 2 views
2

Я довольно новый для python. Я использую Python для чтения файла ARFF сейчас:Как обращаться с данными из файла arff с помощью python?

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 и первые шесть данных столбца как my x, а затем сделаю перекрестную проверку данных из файла arff.

Или есть ли какие-либо подходы к отдельным данным по атрибутам и метке из файла arff автоматически?

+0

Если 'row' является массивом, то вы можете использовать' х = строка [: - 1] и 'у = строка [6] '. –

ответ

0

объекты строки из 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]) 
+0

Я пытаюсь как и сказал, но я получаю «TypeError: unhashable type». Любая идеа? Ty :) – Andy

+0

показать точный код, выше не нужно хэширования, может быть, вы используете set/dictionary вместо списков? – lejlot

Смежные вопросы