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
的答案,并给出一个简单的示例。这在没有任何交换的情况下有效()。我不明白你为什么在回答中添加了交换。所以你特别选择要交换的轴,而不仅仅是重塑。这很有意义。但在我的情况下,交换是没有必要的。知道这一点很酷。谢谢你,姑娘!