将python中的数据帧重塑为3D

时间:2018-06-06 03:19:54

标签: python pandas numpy

我正在尝试将手写角色数据集重塑为3D形式,以便它可以与数字识别数据集连接。我尝试了多次,但我无法弄清楚它是如何完成的。

实际数字识别数据集的形状(60000,28,28) 字符识别数据集具有形状(372450,785),第一列是目标变量。由于排除第一列28 * 28 = 784,因此有可能将其转换为与数字数据集相同的3D。请告知如何做到这一点?

我需要一个像(372450,28,28)这样的整个数据帧

的形状

提前谢谢

2 个答案:

答案 0 :(得分:2)

形状阵列(372450,785)不能制成(372450,28,28)因为28 * 28是784而不是785.但如果你的意思是制作一个(372450,784)(372450,28,28) ),你可以做到

arr = df.column_name.values 

将从数据框column_name的{​​{1}}字段中提供一系列数值。

现在您可以使用df之类的

reshape()

现在arr = arr.reshape(-1,28,28) 将成型(372450,28,28)。

答案 1 :(得分:0)

如果您的手写字符数据集具有灰度字符,则可以使用以下命令将数据集转换为3D,

data = data.values.reshape(-1,28,28,1)

假设您有 data 作为熊猫数据框。

最后一个参数用于通道,对于灰度数据为1。如果您有RGB图像,则有3个通道,因此我们会将数据转换为28x28x3矩阵。