【发布时间】:2017-01-22 23:04:36
【问题描述】:
我正在学习神经网络,我正在尝试自动化一些过程。 现在,我有代码可以随机分割数据集,一个 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。
提前致谢。
【问题讨论】:
-
np.resize是一个很少使用的函数。reshape更有用(如stackoverflow.com/questions/41795638/…)。并且答案中显示的索引切片很常见。可能你习惯在VBA或其他语言中使用resize。 -
我明白了。谢谢!我不习惯任何语言。只是一个试图学习新技能的人,我正在寻找问题。我找到了其中一个问题的解决方案,但显然不是一个好的解决方案:)
标签: python arrays numpy neural-network