Pandas 使用numpy可视化熊猫DF

Pandas 使用numpy可视化熊猫DF,pandas,numpy,matplotlib,Pandas,Numpy,Matplotlib,我有一个名为embeddings的50 x 300 pandas数据帧,希望将其视为numpy阵列。我正在使用下面的功能查看样本: def view_samples(samples, m, n): fig, axes = plt.subplots(figsize=(10, 10), nrows=m, ncols=n, sharey=True, sharex=True) for ax, img in zip(axes.flatten(), samples):

我有一个名为embeddings的50 x 300 pandas数据帧,希望将其视为numpy阵列。我正在使用下面的功能查看样本:

def view_samples(samples, m, n): 
    fig, axes = plt.subplots(figsize=(10, 10), nrows=m, ncols=n, sharey=True, sharex=True) 
    for ax, img in zip(axes.flatten(), samples): 
        ax.xaxis.set_visible(False) 
        ax.yaxis.set_visible(False) 
        im = ax.imshow(1-img.reshape((50,300)), cmap='Greys_r') 
    return fig, axes

并按如下方式运行:

faces = [embeddings.to_numpy()]
_ = view_samples(faces, 1, 4)
当前结果如下所示。只有第一张(最左边的)是正确的,其他的图片不是

鉴于此错误,我还试图重写函数,使其不包含子批,即仅包含最左边的子批。

问题在于:

faces = [embeddings.to_numpy()]
len(faces)==1
。因此:

for ax, img in zip(axes.flatten(), samples): 
你只能画一次。也许你的意思是:

faces = embeddings.to_numpy()

事实上,我得到len(faces)==50,当我使用faces=embeddings.to_numpy():无法将大小为300的数组重塑为形状(50300),所以我将其更改为(10,30),它成功了!如果你只有一张脸,为什么你会期待4个情节?我重写了它,期待一个情节。我试图在最终目标中实现这一点。