PyBrain:Загрузка данных с помощью numpy.loadtxt?

У меня есть рабочий код, который правильно загружает данные из CSV-файла в набор данных PyBrain:

def old_get_dataset():

    reader = csv.reader(open('test.csv', 'rb'))

    header = reader.next()
    fields = dict(zip(header, range(len(header))))
    print header

    # assume last field in csv is single target variable
    # and all other fields are input variables
    dataset = SupervisedDataSet(len(fields) - 1, 1)

    for row in reader:
        #print row[:-1]
        #print row[-1]
        dataset.addSample(row[:-1], row[-1])

    return dataset

Теперь я пытаюсь перепишите этот код, чтобы вместо этого использовать функцию loadtxt numpy. Я считаю, что addSample может принимать массивы numpy, а не добавлять данные по одной строке за раз.

Предполагая, что мой загруженный массив numpy имеет размеры m x n, как мне передать первый m x (n-1)набор данных в качестве первого параметра и последний столбец данных в качестве второго параметра? Это то, что я пытаюсь:

def get_dataset():

    array = numpy.loadtxt('test.csv', delimiter=',', skiprows=1)

    # assume last field in csv is single target variable
    # and all other fields are input variables
    number_of_columns = array.shape[1]
    dataset = SupervisedDataSet(number_of_columns - 1, 1)

    #print array[0]
    #print array[:,:-1]
    #print array[:,-1]
    dataset.addSample(array[:,:-1], array[:,-1])

    return dataset

Но я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:\test.py", line 109, in <module>
    (d, n, t) = main()
  File "C:\test.py", line 87, in main
    ds = get_dataset()
  File "C:\test.py", line 45, in get_dataset
    dataset.addSample(array[:,:-1], array[:,-1])
  File "C:\Python27\lib\site-packages\pybrain\datasets\supervised.py",
       line 45, in addSample self.appendLinked(inp, target)
  File "C:\Python27\lib\site-packages\pybrain\datasets\dataset.py",
       line 215, in appendLinked self._appendUnlinked(l, args[i])
  File "C:\Python27\lib\site-packages\pybrain\datasets\dataset.py",
       line 197, in _appendUnlinked self.data[label][self.endmarker[label], :] = row
ValueError: output operand requires a reduction, but reduction is not enabled

Как я могу это исправить?

5
задан User 12 April 2012 в 23:43
поделиться