【发布时间】:2019-06-07 19:36:06
【问题描述】:
我有一个 2304 列的数据框,因为它是一个 48*48 的图像像素,当我使用此代码将其转换为一个通道时
x = (df.iloc[:,1:].values).astype('float32')
x = x.reshape(-1,48,48,1)
完美的形状输出
(48*48*1)
通过此代码生成精确图像:
plt.imshow(x[0][:,:,0])
我想把它做成一个像三个频道一样的 3Dimentional。我尝试合并 df 3 次并执行此操作(48*48*3) 它成功更改了 df 形状但我无法再次生成图像,
【问题讨论】:
-
在进入这个问题之前,为什么要使用数据帧来存储图像?为什么不直接使用 numpy ndarrays 呢?
-
我在 pandas 中感觉很轻松
-
如果这是唯一的原因,我想你可能想借此机会来获取 numpy 数组。图像与数组搭配得非常好,熊猫与表格数据搭配得非常好。除了非常不理想之外,您会发现 pandas 可能对图像表现不佳,并且大多数基于图像的库都使用数组,(实际上,我所知道的所有都与数组一起使用。它只是存储 RGB 值的正确数据结构)无论如何你都必须转换。
-
如果您知道如何在 numpy 中执行此操作,您可以告诉我,顺便说一下 reshape 基本上是一个 numpy 函数,我使用了错误的符号 df
-
谢谢大家,我正在做更多的搜索