我有一个数据帧,其中每一行对应于图像的1024个像素值。我想将每一行重塑为32x32图像。我的数据框的形状是(32495,1024)。
我尝试过:
features.iloc[0].values.reshape(32, 32)
但是,这仅适用于单行。像这样对整个数据框执行此操作:
features.values.reshape(32, 32)
导致以下错误:
ValueError: cannot reshape array of size 33274880 into shape (32,32)
关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
您需要传递必须重塑的行数,如下所示:
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)
答案 1 :(得分:0)
您可以从DataFrame中获取例如numpy数组,但是问题是您无法使用第3级numpy数组来馈送DataFrame。
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数组,而不是DataFrame。