我正在学习神经网络,我正在尝试自动化一些过程。 现在,我有代码随机分割数据集,284807x31件。然后,我需要分开输入和输出,这意味着我需要选择整个数组直到最后一列,另一方面,只选择最后一列。出于某种原因,我无法弄清楚如何正确地做到这一点,并且如上所述,我被困在分裂和分离集合。这是我到目前为止的代码(引用这个特定问题的部分):
train, test, cv = np.vsplit(data[np.random.permutation(data.shape[0])], (6,8))
# Should select entire array except the last column
train_inputs = np.resize(train, len(train[:,1]), -1)
test_inputs = np.resize(test, len(test[:,1]), -1)
cv_inputs = np.resize(cv, len(cv[:,1]), -1)
# Should select **only** the last column.
train_outs = train[:, 30]
test_outs = test[:, 30]
cv_outs = test[:, 30]
我的想法是,我希望机器找到相应数据集的列号并进行有意调整大小。第二部分将只选择最后一列 - 我不确定这是否有效,因为脚本在此之前停止。顺便说一句,错误是:
Traceback (most recent call last):
File "src/model.py", line 43, in <module>
train_inputs = np.resize(train, len(train[:,1]), -1)
TypeError: resize() takes exactly 2 arguments (3 given)
PS:现在我正在查看文档,我可以看到我离解决方案很远但我真的无法弄明白。这是我第一次使用NumPy。
提前致谢。
答案 0 :(得分:2)
一些切片应该有所帮助:
应该选择除最后一列之外的整个数组
train_inputs = train[:,:-1]
test_inputs = test[:,:-1]
cv_inputs = cv[:,:-1]
和
应选择仅最后一列。
train_outs = train[:,-1]
test_outs = test[:, -1]
cv_outs = test[:, -1]