在numpy中重塑(1000,1,17)张量为(1000,17)张量

时间:2017-02-05 16:55:44

标签: python numpy

我坚持如何将(1000,1,17)张量转换为(1000,17)张量。 我尝试使用sofar的是reshape并按照我在其他答案中看到的转置,但我无法弄清楚它们是如何工作的。

我尝试这个(动作是我原来的3d张量)

actions.transpose(2,0,1).reshape(3,-1)
  1. 我需要更改哪些内容才能使用3d-2d?
  2. 我怎么能以同样的方式从2d-3d改回来?
  3. 请提供详细信息,因为o​​neliner对理解没有多大帮助。

1 个答案:

答案 0 :(得分:1)

如果你想通过reshape进行,那就

actions.reshape([1000, 17])

你只需要传递新的形状。我不知道你为什么试图使用transpose或传递3-1作为参数。 docs很清楚。

而不是reshape,它可能更容易索引长度为1的维度:

actions[:, 0]

相反的是

arr.reshape([1000, 1, 17])

arr[:, None]

还有np.squeeze,它提供了一个删除了所有长度为1的数组的视图,但这可以删除比您真正想要的更多的维度。