【问题标题】:NumPy - Getting column and row number to reshape arrayNumPy - 获取列号和行号以重塑数组
【发布时间】: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


【解决方案1】:

一些切片应该会有所帮助:

应该选择除最后一列之外的整个数组

train_inputs = train[:,:-1]
test_inputs = test[:,:-1]
cv_inputs = cv[:,:-1]

和:

应该只选择最后一列。

train_outs = train[:,-1]
test_outs = test[:, -1]
cv_outs = test[:, -1]

【讨论】:

  • 我认为这解决了这个问题,即使我遇到了另一个问题,但这与代码的其他部分有关。谢谢!
猜你喜欢
  • 2021-12-27
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-13
  • 2016-02-10
相关资源
最近更新 更多