Python 如何重塑数据帧的每一行?
我有一个数据帧,其中每行对应于图像的1024个像素值。我想将每一行重塑为32x32图像。我的数据帧的形状是(324951024) 我试过: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) 关于如
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标签。