Python 如何重塑数据帧的每一行?

Python 如何重塑数据帧的每一行?,python,pandas,image,numpy,dataframe,Python,Pandas,Image,Numpy,Dataframe,我有一个数据帧,其中每行对应于图像的1024个像素值。我想将每一行重塑为32x32图像。我的数据帧的形状是(324951024) 我试过: features.iloc[0].values.reshape(32, 32) 但是,这仅适用于单行。对整个数据帧执行以下操作: features.values.reshape(32, 32) 导致以下错误: ValueError: cannot reshape array of size 33274880 into shape (32,32) 关于如

我有一个数据帧,其中每行对应于图像的1024个像素值。我想将每一行重塑为32x32图像。我的数据帧的形状是(324951024)

我试过:

features.iloc[0].values.reshape(32, 32)
但是,这仅适用于单行。对整个数据帧执行以下操作:

features.values.reshape(32, 32)
导致以下错误:

ValueError: cannot reshape array of size 33274880 into shape (32,32)

关于如何实现这一点,您有什么想法吗?

您需要按照以下方式传递需要重新塑形的行数:

my_df = pd.DataFrame(np.zeros((32495,1024)))
my_df.shape
>> (32495, 1024)

reshaped_array = my_df.values.reshape(32495, 32, 32)
reshaped_array.shape
>> (32495, 32, 32)

例如,您可以从数据帧获取numpy数组,但问题是您无法使用秩3 numpy数组为数据帧提供数据

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(10, 9))
arr = df.values
arr = np.reshape(arr, (10, 3, 3))
此步骤将失败:

df = pd.DataFrame(arr)

另一个答案在末尾提供了numpy数组,而不是数据帧

请花点时间阅读这篇文章,并根据添加的numpy标记修改您的问题,因为您实际上需要在最后将它们作为numpy数组。实际上,我忘记在问题中指定这一点,但我确实需要数据帧中的numpy数组。很抱歉。感谢您抽出时间回答!当然,没问题,numpy数组非常适合这种情况,甚至可以在TensorFlow中将它们转换为张量。我会添加numpy标签。