【问题标题】:Extracting one row from a numpy matrix从 numpy 矩阵中提取一行
【发布时间】:2017-05-09 15:21:26
【问题描述】:

我目前正在测试一个 NN 实现,其中训练数据存储在 numpy 矩阵中。

print train_set_data_vstacked_normalized.shape

(219970,400)

当前的输入数据是这样的,我必须将每一行输入到我的神经网络中......

它接受形状的输入(无,400)。

如何取出一行,使得从矩阵中取出的数组有400个条目,或者400列一行?

我试过了

print train_set_data_vstacked_normalized[:,0].shape
(219970,)

print train_set_data_vstacked_normalized[0,:].shape
(400,)

【问题讨论】:

  • train_set_data_vstacked_normalized[0,:].reshape(1,400) 怎么样?
  • 试试x[None, :, 0]x[:,0][None,:]x[:,0].reshape(1,-1)
  • ...?我不确定我是否理解那会做什么。数据的结构已经正确,我想传递恰好适合形状的数据。我想传递正确的数据..
  • @hpaulj 错误:Exception: Error when checking : expected dense_input_1 to have shape (None, 400) but got array with shape (1, 219970)
  • 进入交互式 numpy 会话并尝试一些小数组。不要只是将东西插入一个大脚本中。实验/玩。

标签: python numpy matrix neural-network numpy-ndarray


【解决方案1】:

您需要一个简单的for 循环来遍历数组的所有行。

nrows = train_set_data_vstacked_normalized.shape
for i in range(nrows[0]):
    row = train_set_data_vstacked_normalized[i, :]

    # now change shape to (1, 400)
    resized_row = row[np.newaxis]

   # now, "resized_row" shape is (1, 400)
   # pass "resized_row" to NN input layer.
   # ...

PS:作为旁注,只是想提醒您,内存中有 ~220K x 400 数组在我的机器中大约需要 670 Mb。考虑将其作为 HDF5 文件。

【讨论】:

    猜你喜欢
    • 2014-08-07
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 2018-02-11
    • 1970-01-01
    • 2021-10-14
    相关资源
    最近更新 更多