gpt4 book ai didi

python - PyBrain:使用 numpy.loadtxt 加载数据?

转载 作者:太空狗 更新时间:2023-10-30 00:51:38 26 4
gpt4 key购买 nike

我有一些工作代码可以将数据从 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

现在我正在尝试重写此代码以改用 numpy 的 loadtxt 函数。我相信 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

我该如何解决这个问题?

最佳答案

经过大量试验和重新阅读 dataset documentation ,以下运行没有错误:

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])
#dataset.addSample(array[:,:-1], array[:,-2:-1])
dataset.setField('input', array[:,:-1])
dataset.setField('target', array[:,-1:])

return dataset

我必须仔细检查它是否在做正确的事情。

关于python - PyBrain:使用 numpy.loadtxt 加载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com