Pandas 使用numpy可视化熊猫DF
我有一个名为embeddings的50 x 300 pandas数据帧,希望将其视为numpy阵列。我正在使用下面的功能查看样本: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):
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个情节?我重写了它,期待一个情节。我试图在最终目标中实现这一点。