Python 使用tensorflow将三维矩阵重塑为二维矩阵

Python 使用tensorflow将三维矩阵重塑为二维矩阵,python,tensorflow,reshape,Python,Tensorflow,Reshape,我有一个三维尺寸矩阵,549x19x50我需要创建一个二维矩阵,从而得到一个549x950矩阵 到目前为止,我所做的是使用tensorflow #data_3d is the 3D matrix data_2d = tf.reshape(data_3d,[549,-1]) 这会在提示符中打印出data_3d的所有值,当我尝试访问data_2d时,它会给我一个NameError data_3d是一个列表列表。不是张量,也不是数组。如果我们不能对列表执行此操作,是否有任何方法可以轻松地将列表转换为

我有一个三维尺寸矩阵,
549x19x50
我需要创建一个二维矩阵,从而得到一个
549x950
矩阵

到目前为止,我所做的是使用tensorflow

#data_3d is the 3D matrix
data_2d = tf.reshape(data_3d,[549,-1])
这会在提示符中打印出data_3d的所有值,当我尝试访问data_2d时,它会给我一个NameError

data_3d是一个列表列表。不是张量,也不是数组。如果我们不能对列表执行此操作,是否有任何方法可以轻松地将列表转换为Ndarray

提前感谢,


Bhashithe

使用
numpy
有一种简单的方法可以做到这一点:

import numpy as np

data_3d = np.arange(27).reshape((3,3,3))
data_2d = data_3d.swapaxes(1,2).reshape(3,-1)
输出:

data_2d
[[036147258]
[9 12 15 10 13 16 11 14 17]
[18 21 24 19 22 25 20 23 26]

print data_3d
[[0 1 2]
[3 4 5]
[6 7 8]]

[[9 10 11]
[12 13 14]
[15 16 17]]

[[18 19 20]
[21 22 23]
[24 25 26]]]


注意
交换参数(1,2)
是这里的主要内容-您需要定义要交换的轴。

为什么只是Tensorflow?我需要使用带有Tensorflow的递归神经网络。我一直在测试,现在已经非常熟悉了。我可以使用任何其他python库,如果你能告诉我@GalDreimanSo的内容,看看答案,我将发布一个基于
numpy
的答案,并给出一个简单的示例。这在没有任何交换的情况下有效()。我不明白你为什么在回答中添加了交换。所以你特别选择要交换的轴,而不仅仅是重塑。这很有意义。但在我的情况下,交换是没有必要的。知道这一点很酷。谢谢你,姑娘!